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

时间:2017-08-22 05:47:54

标签: sql date time oracle11g

要获得上个月的第一个日期(时间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;

1 个答案:

答案 0 :(得分:1)

--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;