有人能告诉我为什么这个 SQL 查询返回一个
ORA-01843. 00000 - "not a valid month"
我现在错了,但应该是因为 2018 年不是有效的一天。 09 是一个有效的月份。我觉得..
select to_timestamp('2018-09-05 11:35:41', 'dd/MM/yyyy HH:mi:ss') from dual;
我知道查询是错误的。我只是想知道为什么它不说 not a valid day
或类似的东西。现在的错误是说月份是错误的,这是错误的。
最佳答案
原因是因为 Oracle 试图变得聪明/乐于助人。所以,它正在解释:
select to_timestamp('2018-09-05 11:35:41', 'dd/MM/yyyy HH:mi:ss') from dual;
---------------------^ddMM
20
被解释为有效的一天。接下来是月份。
Oracle 正在尝试忽略分隔符。因此,18
是无效月份。
试试这个:
select to_timestamp('2012-2012', 'dd/MM/yyyy') from dual
关于sql - 为什么 Oracle 返回无效月份错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57360272/