首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ORA-01843“不是有效的月份”和ORA-01861“文字与格式字符串不匹配”

ORA-01843“不是有效的月份”和ORA-01861“文字与格式字符串不匹配”
EN

Stack Overflow用户
提问于 2010-12-15 02:45:15
回答 2查看 24.5K关注 0票数 4
代码语言:javascript
运行
复制
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

正确的方法是什么?

代码语言:javascript
运行
复制
2010-12-14:09:56:53
minus
2010-12-14:09:56:46

在Oracle SQL中?

EN

Stack Overflow用户

回答已采纳

发布于 2010-12-15 02:52:33

您必须为TO_DATETO_TIMESTAMP函数指定时间戳字符串的格式:

代码语言:javascript
运行
复制
select 
    to_date('2010-12-14:09:56:53', 'YYYY-MM-DD:HH24:MI:SS') - 
    to_date('2010-12-14:09:56:46', 'YYYY-MM-DD:HH24:MI:SS') 
from dual;

结果将以天为单位,可以乘以86,400得到秒:

代码语言:javascript
运行
复制
TO_DATE('2010-12-14:09:56:53','YYYY-MM-DD:HH24:MI:SS')-TO_DATE('2010-12-14:09:56
--------------------------------------------------------------------------------
.000081019

使用TO_TIMESTAMP

代码语言:javascript
运行
复制
select 
    to_timestamp('2010-12-14:09:56:53', 'YYYY-MM-DD:HH24:MI:SS') - 
    to_timestamp('2010-12-14:09:56:46', 'YYYY-MM-DD:HH24:MI:SS') 
from dual;

结果将采用TIMESTAMP格式:

代码语言:javascript
运行
复制
TO_TIMESTAMP('2010-12-14:09:56:53','YYYY-MM-DD:HH24:MI:SS')-TO_TIMESTAMP('2
---------------------------------------------------------------------------
+000000000 00:00:07.000000000
票数 15
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4442932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档