oracle当月一天_oracle时间的获取,前一天,上一个星期,上一个月详解

本文主要介绍了SQL中获取前一天、上个月第一天和最后一天等日期时间的操作方法,包括不同时刻的转换。还提到了一些获取星期和日期的函数,并展示了如何获取指定月份的起始和结束时间。此外,提供了通过月份获取指定年份内所有月份日期的示例。博客旨在记录和分享SQL日期时间处理的实用技巧。
摘要由CSDN通过智能技术生成

–前一天的开始时刻

SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyy-mm-dd’) || ‘00:00:00’,’yyyy-mm-dd hh24:mi:ss’) FROM DUAL;

–前一天的最后时刻

SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyy-mm-dd’) || ‘23:59:59’,’yyyy-mm-dd hh24:mi:ss’) FROM DUAL;

–上个月第一天的最后时刻

select to_date(to_char(add_months(trunc(sysdate),-1),’yyyy-mm’) || ‘01 23:59:59’,’yyyy-mm-dd hh24:mi:ss’)from dual;

–上个月的第一天

SELECT to_date(to_char(TRUNC(SYSDATE-1),’yyyymm’) || ‘01’,’yyyy-mm-dd’) FROM DUAL;

–上个月第一天最开始的时刻

select to_date(to_char(add_months(trunc(sysdate),-1),’yyyy-mm’) || ‘01 00:00:00’,’yyyy-mm-dd hh24:mi:ss’) from dual;

–上个月最后一天

select to_char(last_day(add_months(sysdate,-1)),’yyyy-mm-dd’) from dual;

–上个月最后一天的时刻

select to_date(to_char(last_day(add_months(sysdate,-1)),’yyyy-mm-dd’) || ’ 23:59:59’,’yyyy-mm-dd hh24:mi:ss’) from dual;

另外还有一些获取星期的方法:

select to_char(sysdate,’d’) 每周第几天 ,

to_char(sysdate,’dd’) 每月第几天 ,

to_char(sysdate,’ddd’) 每年第几天 ,

to_char(sysdate,’ww’) 每年第几周 ,

to_char(sysdate,’mm’) 每年第几月 ,

to_char(sysdate,’q’) 每年第几季 ,

to_char(sysdate,’yyyy’) 年

from dual;

select to_char(sysdate,’YYYY”年”mm”月”dd”日”’)

from dual;

select to_char(sysdate,’YYYY/mm/dd hh24:mi:ss ssss’)

from dual;

获取指定月的最开始时间和最后的时间:

SELECT to_date(to_char(I_QUERY_DATE ||’01 00:00:00’),’yyyy-mm-dd hh24:mi:ss’) FROM dual;

select to_date(to_char(last_day(t.d)|| ’ 23:59:59’),’yyyy-mm-dd hh24:mi:ss’) from (select to_date(‘2015-05’,’yyyy-mm’) d from dual)t

通过月份获取01年到50年之间全部分月份和月初月末的日期:

select to_char(tt.d, ‘yyyy-MM’) interval_month,

to_char(tt.d, ‘MM’) month,

to_char(last_day(tt.d), ‘dd’) day,

tt.d interval_date,

last_day(tt.d) last_day

from (select ADD_MONTHS(zz.s, rownum - 1) d

from (select to_date(‘2001-01-01’, ‘yyyy-MM-dd’) s,

to_date(‘2050-01-01’, ‘yyyy-MM-dd’) e

from dual) zz,

(select * from user_objects)

where rownum <= MONTHS_BETWEEN(zz.e, zz.s) + 1) tt

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,文章可以转载,无需版权。希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值