【发布时间】:2017-06-25 19:42:44
【问题描述】:
select TRUNC(TO_DATE('22-AUG-03'), 'YEAR')
from dual;
ORA-01843: 月份无效
第一个例子 -> https://www.techonthenet.com/oracle/functions/trunc_date.php
我知道“trunc”函数接受一个日期和可选的 fmt 参数。 为什么我会收到此错误?
【问题讨论】:
-
刚刚尝试过,它工作正常,如该教程中所述。请参阅此小提琴,例如 sqlfiddle.com/#!4/68b32/1521
-
它是否适用于 Oracle 12c?
-
您忘记在
TO_DATE('22-AUG-03')中指定格式。所以你相信某些会话设置和你的运气。不。如果您想要日期文字,请使用日期文字,而不是使用必须转换的字符串文字:DATE '2003-08-22'。如果您必须转换包含日期和月份名称的字符串,请确保指定格式和语言:TO_DATE('22-AUG-03', 'DD-MON-RR ', 'NLS_DATE_LANGUAGE=AMERICAN')` -
养成始终使用四位数年份的习惯。现在是 2017 - 不要编写有 Y2K 错误的新代码
标签: oracle date oracle12c truncate