在项目中,常常用到时间方面的查询,针对oracle中的做出一个小结,高手可以忽略,不喜勿喷。欢迎看到的朋友留言补充指正!!!
1.查询今天数据:
select count(*) from tb where TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD');
2. 查询昨天的数据
select count(*) from tb where TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE-1,'YYYY-MM-DD');
3. 查询本周的数据
select count(*) from tb where T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)+1) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1;
4.查询上周的数据
select count(*) from tb where T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+1);
5. 查询本月数据
select count(*) from tb where TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CHAR(SYSDATE,'YYYY-MM');
6.查询上月数据
select count(*) from tb where TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM');
7. oracle查询大于当前日期的数据
select * from t where T_RKSJ> trunc(sysdate); trunc直接精确到天,截断下面时分秒的数据。
8.查询某天的数据
select * from table_name where trunc(日期字段)=to_date('2018-05-20','yyyy-mm-dd');
随后会继续完善补充。。。