Oracle查询今天、昨天、本周、上周、本月、上月数据方式
短信预约 -IT技能 免费直播动态提醒
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,'YYYY-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_CHAR(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.TABLE_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.cppcns.com)。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341