Abd*_*enM 2 sql oracle timestamp
有人可以告诉我为什么这个SQL查询返回一个
ORA-01843. 00000 - "not a valid month"
Run Code Online (Sandbox Code Playgroud)
我现在错了,但这应该是因为2018年不是有效的一天。09是有效月份。我认为..
select to_timestamp('2018-09-05 11:35:41', 'dd/MM/yyyy HH:mi:ss') from dual;
Run Code Online (Sandbox Code Playgroud)
我知道查询是错误的。我只想知道为什么不说not a valid day或类似的话。错误现在表明月份是错误的,这是错误的。
原因是因为Oracle试图变得聪明/有用。因此,它在解释:
select to_timestamp('2018-09-05 11:35:41', 'dd/MM/yyyy HH:mi:ss') from dual;
---------------------^ddMM
Run Code Online (Sandbox Code Playgroud)
将20被解释为一个有效的一天。然后是月份。Oracle正在帮助忽略分隔符。因此,18是无效的月份。
尝试这个:
select to_timestamp('2012-2012', 'dd/MM/yyyy') from dual
Run Code Online (Sandbox Code Playgroud)