简体   繁体   English

SQL TO_DATE格式错误

[英]SQL TO_DATE format error

I wrote this statement to get the 1st day of the previous month 我写这个声明是为了得到上个月的第一天

select '01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy') from dual

Output: 01.02.2016 输出: 01.02.2016

If I use TO_DATE to format I get the following error: not a valid month 如果我使用TO_DATE格式化, TO_DATE出现以下错误: not a valid month

My current not working solution: 我当前无法正常工作的解决方案:

select TO_DATE('01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy')) from dual

Thanks for any help / advices 感谢您的帮助/建议

You need a format String for to_date, too: 您还需要to_date的格式字符串:

select TO_DATE('01.' || TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM.yyyy'), 'dd.mm.yyyy') from dual

But it is simpler to use trunc, as proposed by lad2025. 但是使用lad2025提出的trunc更简单。

You could calculate it using TRUNC : 您可以使用TRUNC计算:

SELECT TRUNC(ADD_MONTHS(SYSDATE,-1),'mm') AS result
FROM dual;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM