我写这篇陈述是为了获得上个月的第一天
select '01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy') from dual
输出:01.02.2016
如果我使用TO_DATE
进行格式化,则会出现以下错误:not a valid month
我目前无效的解决方案:
select TO_DATE('01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy')) from dual
感谢您提供任何帮助/建议
答案 0 :(得分:3)
你也需要to_date的格式字符串:
select TO_DATE('01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy'), 'dd.mm.yyyy') from dual
但是使用trunc更简单,正如lad2025所提出的那样。
答案 1 :(得分:3)
您可以使用TRUNC
计算它:
SELECT TRUNC(ADD_MONTHS(SYSDATE,-1),'mm') AS result
FROM dual;