Oracle查询今天、昨天、本周、上周、本月、上月数据方式
目录
- oracle查询今天、昨天、本周、上周、本月、上月数据
- Oracle表中以某一天时间为条件的查询几种写法
- 写法一
- 写法二
- 写法三
- 总结
Oracle查询今天、昨天、本周、上周、本月、上月数据
查询今天数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD')
查询昨天数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YpythonYYY-MM-DD')=TO_CHAR(SYSDATE-1,'YYYY-MM-DD')
查询本周数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)+1) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
查询上周数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
查询本月数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CbJUNCHAR(SYSDATE,'YYYY-MM')
查询上月数据:
SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM')
查询表名及字段信息数据:
SELECT A.TABLE_NAME 表名,A.COLUMN_NAME 字段名,A.COMMENTS 字段注释,B.DATA_TYPE 字段类型,B.DATA_LENGTH 字段长度,B.NULLABLE 是否为空,C.INDEX_NAME 索引名称 FROM USER_COL_COMMENTS A LEFT JOIN USER_TAB_COLUMNS B ON A.COLUMN_NAME = B.COLUMN_NAME AND A.TAB编程LE_NAME=B.TABLE_NAME LEFT JOIN USER_IND_COLUMNS C ON A.COLUMN_NAME = C.COLUMN_NAME AND A.TABLE_NAME=C.TABLE_NAME WHERE A.TABLE_NAME = '表名' ORDER BY B.COLUMN_ID
备注:NEXT_DAY(SYSDATE,1)函数为当前系统时间的下个星期日时间,数字1代表星期日;
Oracle表中以某一天时间为条件的查询几种写法
写法一
将列转为字符串
select * from Example where to_char(DATE_T,'yyyy-mm-dd')='2018-07-30';
在不考虑sql语句的查询性能的情况下可以考虑这种写法。
写法二
对列截取或模糊查询
select * from Example where trunc(DATE_TRAVEL) = to_date('2018-07-30','yyyymmdd'); select * from Example where DATE_T like to_date('2018-07-30','yyyymmdd编程客栈');
在不考虑sql语句的查询性能的情况下可以考虑这种写法。
写法三
不对列操作,通过设置并列条件
select * from Example where DATE_T>= to_date('2018-07-30','yyyymmdd') and DATE_T< to_date('2018-07-30','yyyymmdd') +1;
这种写法没有对字段操作,如果在DATE_T上建立了索引,会走索引查询。查询性能较好
总结
以上为个人经验,希望能给大家一个参考,也希编程客栈望大家多多支持编程客栈(www.devze.com)。
精彩评论