SQL TO_DATE格式错误

时间:2016-03-01 08:18:47

标签: sql oracle date

我写这篇陈述是为了获得上个月的第一天

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

感谢您提供任何帮助/建议

2 个答案:

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