开发者

Oracle查询今天、昨天、本周、上周、本月、上月数据方式

开发者 https://www.devze.com 2023-11-19 10:38 出处:网络 作者: 王绍桦
目录oracle查询今天、昨天、本周、上周、本月、上月数据Oracle表中以某一天时间为条件的查询几种写法写法一写法二写法三总结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)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消