在Oracle中获取上个月的第一个日期和最后一个日期的最佳实践

问题描述 投票:0回答:3

为了获取上个月的第一个日期(时间 00:00:00)和最后一个日期(时间 23:59:59),我尝试了下面的查询,它按照预期给出了正确的输出。

以下是获取上个月的第一个日期和最后一个日期的方法 正确和最佳实践?如果没有,请建议最好的 练习做同样的事情。

上个月的第一个日期(时间部分:00:00:00):

 select  TRUNC(ADD_MONTHS(SYSDATE, -1),'MM')  from dual ; 

上个月的最后一个日期(时间部分 23:59:59):

 SELECT last_day(add_months(trunc(sysdate,'mm'),-1)) + INTERVAL '23:59:59'  HOUR TO SECOND FROM DUAL;
sql date time oracle11g
3个回答
3
投票
--I got the hard  way
select '01-'||to_char(last_day(add_months(sysdate,-1)),'MON-YYYY')Firs_day,
       last_day(add_months(sysdate,-1))Last_day 
from dual;

0
投票
select last_day(add_months(sysdate,-2))+1 First_Day, 
       last_day(add_months(sysdate,-1)) Last_day 
from dual;

0
投票

选择 TRUNC(ADD_MONTHS(SYSDATE, -1),'MM') 第一天,最后一天(add_months(trunc(sysdate,'mm'),-1))+ (1-1/24/60/60) 最后一天 来自对偶;

© www.soinside.com 2019 - 2024. All rights reserved.