SQL小汇总
SQL小汇总
1.对每个时段的数据进行统计
2.查询时间条件(to_date)
3.插入序列号和系统时间
4.查询当天、7天内、30天内
5.查询前后x小时、分钟、天、月。
6.保留小数点后4位
7.查询字段A中,长度大于30的数据
1.对每个时段的数据进行统计
select t.time, count(time) num from table1 t group by time order by time
2.查询时间条件(to_date)
and start_time <= to_date('2018-10-17 10:50:00','yyyy-MM-dd hh24:mi:ss')
3.插入序列号和系统时间
insert into table1 value(sys_int_id,INSERT_TIME) values(SEQ_CONFIG_ID.nextval,sysdate)
4.查询当天、7天内、30天内
当天: and trunc(CREATE_TIME)=trunc(sysdate) [今天00:00:00到现在] and CREATE_TIME >= sysdate-1 and CREATE_TIME <= sysdate [昨天的现在到今天的现在] 7天内 : and CREATE_TIME >= sysdate-7 and CREATE_TIME <= sysdate 30天内: and CREATE_TIME >= add_months(sysdate,-1) and CREATE_TIME <= sysdate
5.查询前后x小时、分钟、天、月。。
当前时间,前x分钟: select sysdate, sysdate - x/(24*60) from dual; 当前时间,后x分钟: select sysdate, sysdate + x/(24*60) from dual; 当前时间,前x小时: select sysdate, sysdate - x/24 from dual; 当前时间,后x小时: select sysdate, sysdate + x/24 from dual; 当前时间,前x天: select sysdate, sysdate-3 from dual; 当前时间,后x天: select sysdate, sysdate+3 from dual; 当前时间,前x月: select sysdate, add_months(sysdate,-x) from dual; 当前时间,后x月: select sysdate, add_months(sysdate,x) from dual;
6.保留小数点后4位
--四舍五入:(结果:1.2346) select round(1.2345555, 4) from dual; --直接截取:(结果:1.2345) select trunc(1.2345555, 4) from dual;
7.查询字段A中,长度大于30的数据
select * from table1 b where length(A)>30