ORA-01843“不是有效的月份”和 ORA-01861“文字与格式字符串不匹配”
SQL> select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dua
l;
select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01843: not a valid month
SQL> select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual;
select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01861: literal does not match format string
执行 a 的正确方法是什么?
2010-12-14:09:56:53
minus
2010-12-14:09:56:46
在 Oracle SQL 中
SQL> select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dua
l;
select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01843: not a valid month
SQL> select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual;
select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01861: literal does not match format string
What is the correct way to do a
2010-12-14:09:56:53
minus
2010-12-14:09:56:46
in Oracle SQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须指定时间戳字符串的格式 <代码>TO_DATE 和 < code>TO_TIMESTAMP 函数:
结果将以天为单位,您可以将其乘以 86,400 以获得秒:
使用
TO_TIMESTAMP
:结果将采用
TIMESTAMP
格式:You have to specify format that your timestamp string is in to
TO_DATE
andTO_TIMESTAMP
functions:Result will be in days, which you can multiply by 86,400 to get seconds:
Using
TO_TIMESTAMP
:Result will be in
TIMESTAMP
format:使用 to_timesatmp
Use to_timesatmp