帮忙看下to_date的用法

aiq 2009-04-24 01:01:54
select l_code from table1
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
以上语法执行正确,但我需要计算count就出错了
select count(*) from table1
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
错误是ora-01861:文字与格式字符串不匹配
...全文
1283 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanzuwen 2009-04-24
  • 打赏
  • 举报
回复
where后面的条件最后应该是转换成字符类型才对!~
bzcnc 2009-04-24
  • 打赏
  • 举报
回复
正常情况应该不会发生问题,但是估计是插入了空值或者其他类型的记录了。
superhsj 2009-04-24
  • 打赏
  • 举报
回复
两个语句只要一个通过了,另一个应该就能通过,报错的原因可能是两次查询之间,表中被插入了与掩码格式不匹配的记录
lqb2008 2009-04-24
  • 打赏
  • 举报
回复
count(*)?就这一个要查询的?
hjianke 2009-04-24
  • 打赏
  • 举报
回复
可能是存在空值,lz可以查询一下看看
jin_ok 2009-04-24
  • 打赏
  • 举报
回复
是不是里面有空格或者不规则的值在转换的过程中出错了,如果你的字段是date类型就报 ora-01861:文字与格式字符串不匹配
pobaby 2009-04-24
  • 打赏
  • 举报
回复
估计是你的 字段里的值不匹配吧。

SELECT TO_DATE('200903020909', 'yyyy-mm-dd hh24:mi') -
TO_DATE('200901010807', 'yyyy-mm-dd hh24:mi') - 50
FROM DUAL;




[Quote=引用楼主 aiq 的帖子:]
select l_code from table1
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
以上语法执行正确,但我需要计算count就出错了
select count(*) from table1
where (to_date(g_sendtime,'yyyy-mm-dd hh24:mi')-to_date(g_indate,'yyyy-mm-dd hh24:mi') >(1/24/60)*30
错误是ora-01861:文字与格式字符串不匹配
[/Quote]
zcs_1 2009-04-24
  • 打赏
  • 举报
回复
g_sendtime和in_date有不符合'yyyy-mm-dd hh24:mi'格式的字符串。
阿三 2009-04-24
  • 打赏
  • 举报
回复
检查一下g_sendtime与in_date字段值有没有空值
aiq 2009-04-24
  • 打赏
  • 举报
回复
估计字段中某些值不能转换成日期的格式,但两个语法怎么一个好,一个不好用呢
aiq 2009-04-24
  • 打赏
  • 举报
回复
字符型的
hjianke 2009-04-24
  • 打赏
  • 举报
回复
g_sendtime,g_indate是什么类型字段?
阿三 2009-04-24
  • 打赏
  • 举报
回复
表结构及数据粘出来点,看不出有什么问题
类似这样写写
zxf2@ORCL(192.168.21.110)> select count(*) from ttt1
2 where sysdate-numtodsinterval(30,'minute')>to_date('2009-01-03','yyyy-mm-dd hh24:mi:ss');

COUNT(*)
----------
2

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧