Oracle时间查询语句合集

1.当前日期的年份第一天和最后一天

SELECT TRUNC(SYSDATE,'Y') RQ FROM DUAL;
select last_day(add_months(trunc(SYSDATE,'y'),11)) from dual

2.当前日期的月份第一天和最后一天

select trunc(sysdate,'MM') from dual;

输出结果2022/2/1
3.30天前日期

SELECT TRUNC(SYSDATE-30)  RQ FROM DUAL

4.当天

SELECT TRUNC(SYSDATE,'DD') RQ FROM DUAL

5.当日(智能调节)

SELECT CASE
                 WHEN TO_NUMBER(TO_CHAR(SYSDATE, 'HH24')) >= 17 THEN
                  TRUNC(SYSDATE, 'DD')
                 ELSE
                  TRUNC(SYSDATE, 'DD') - 1
       END RQ
FROM   DUAL

6.当月

SELECT
  CASE
    WHEN TRUNC(SYSDATE) = TRUNC(LAST_DAY(SYSDATE)) THEN TO_CHAR(SYSDATE, 'YYYYMM')
    ELSE TO_CHAR(ADD_MONTHS(SYSDATE,-1), 'YYYYMM')
  END NY
FROM
  DUAL

7.当月智能调节

SELECT CASE
                 WHEN TO_NUMBER(TO_CHAR(SYSDATE, 'DD')) < TO_NUMBER(TO_CHAR(last_day(SYSDATE), 'DD'))   THEN
                  TO_CHAR(add_months(last_day(sysdate), -1),'YYYYMM') 
                 ELSE
                   TO_CHAR(SYSDATE,'YYYYMM') 
       END NY
FROM   DUAL

8.去年本月

SELECT
  CASE
    WHEN TRUNC(SYSDATE) = TRUNC(LAST_DAY(SYSDATE)) THEN TO_CHAR(ADD_MONTHS(SYSDATE,-1), 'YYYYMM')
    ELSE TO_CHAR(ADD_MONTHS(SYSDATE,-12), 'YYYYMM')
  END NY
FROM
  DUAL

9.当前年月

select to_char(sysdate,'yyyyMM') AS NY
from dual

10.截取年月

select * from CLZ_SX_PROD_RB t
where substr(TO_CHAR(RQ,'yyyymmdd'),0,6)= '202202'
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值