• Oracle查询今天的数据(昨天、本周...)


    前言:获取当前时间的方法:

    select sysdate from dual;

    1.今天的数据

    select * from user where TO_CHAR(create_time,'yyyy-MM-dd') = TO_CHAR(sysdate,'yyyy-MM-dd');

    2.昨天的数据

    select * from user where TO_CHAR(create_time,'yyyy-MM-dd') = TO_CHAR(sysdate-1,'yyyy-MM-dd');

    3.本周的数据

    本周的数据就是从周一到周日的数据。

    select * from user where create_time >= TRUNC(NEXT_DAY(sysdate-8,1)+1) and create_time< TRUNC(NEXT_DAY(sysdate-8,1)+7)+1;

    说明:

    1)NEXT_DAY()函数:获取当前时间的下一周周日的时间。

    select NEXT_DAY(sysdate, 1) from dual;

    若当前时间是2021-06-09 14:20:20,那么其查询的结果就是2021-06-13 14:20:20.

    2)TRUNC()函数:对日期或数字进行截取,可指定截取的长度。这里只对日期的类型进行说明:

    select TRUNC(sysdate) from dual;  --2021-06-09 00:00:00

    这里是把当前的时间进行截取,默认只截取到日期,时间部分都是初始值0。

    select TRUNC(sysdate,'yyyy') from dual;  --2021-01-01 00:00:00

    这里是获取到年份,月份和日期部分是初始值1,时间部分都是初始值0。

    3)综合分析

    上述中 "NEXT_DAY(sysdate-8,1)" 是查询上周日00:00:00的时间,

    "TRUNC(NEXT_DAY(sysdate-8,1)+1)" 是查询本周一00:00:00的时间,

    "TRUNC(NEXT_DAY(sysdate-8,1)+7)+1" 是查询下周一00:00:00的时间

    4.上周的数据

    select * from user where create_time >= TRUNC(NEXT_DAY(sysdate-8,1)-6) and create_time< TRUNC(NEXT_DAY(sysdate-8,1)+1);

    5.本月的数据

    select * from user where TO_CHAR(create_time,'yyyy-MM') = TO_CHAR(sysdate,'yyyy-MM');

    6.上月的数据

    1)ADD_MONTHS()函数:获取当前时间前面或后面的月份的当前时间。

    -- 上个月的现在时间
    select ADD_MONTHS(SYSDATE,-1) from dual;  --2021-05-09 15:15:11
    -- 下个月的现在时间
    select ADD_MONTHS(SYSDATE,1) from dual;  --2021-07-09 15:15:11

    2)查询上个月的数据

    select * from user where TO_CHAR(create_time,'yyyy-MM') = TO_CHAR(ADD_MONTHS(sysdate,-1),'yyyy-MM');

    7.今年的数据

    select * from user where TO_CHAR(create_time,'yyyy') = TO_CHAR(sysdate,'yyyy');

    8.去年的数据

    select * from sys_user where TO_CHAR(create_time,'yyyy') = TO_CHAR(ADD_MONTHS(trunc(sysdate,'YYYY'),-12),'yyyy');

    说明如下:

    1)TRNUC()用来获取今年第一天的时间

    select TRUNC(sysdate,'YYYY') from dual;  --2021-01-01 00:00:00

    2)ADD_MONTHS()用来获取去年第一天的时间

    select ADD_MONTHS(trunc(sysdate,'YYYY'),-12) from dual;  --2020-01-01 00:00:00

     然后再把年份进行比较即可获取去年的数据。 

    就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
  • 相关阅读:
    Oracle冷备份需要保存的文件
    oracle 重建 sys密码文件
    ORA-01991错误
    oracle ORA-01033问题怎么解决
    oracle创建表空间
    oracle 10G服务器端安装以及冷备份恢复
    完全卸载oracle11g步骤
    42. 函数指针用在菜单驱动系统中,练习函数指针数组的使用。
    41. 定义与调用一个函数指针时的几种方式
    40. 使用数组时的四个要点
  • 原文地址:https://www.cnblogs.com/zys2019/p/14867159.html
Copyright © 2020-2023  润新知