为了获取上个月的第一个日期(时间 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;
--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;
select last_day(add_months(sysdate,-2))+1 First_Day,
last_day(add_months(sysdate,-1)) Last_day
from dual;
选择 TRUNC(ADD_MONTHS(SYSDATE, -1),'MM') 第一天,最后一天(add_months(trunc(sysdate,'mm'),-1))+ (1-1/24/60/60) 最后一天 来自对偶;