oracle 时间条件查询

xxijun 2012-01-05 11:25:06
select * from TAB_测试 where '派件时间' BETWEEN '2011-02-01 22:03:40' and '2011-12-02 22:03:40'



为什么这条语句返回的行数为0呢, 哪里错了呀.
...全文
1124 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
不写代码的钦 2014-09-22
  • 打赏
  • 举报
回复
。。。你的派件时间肯定是date类型的,你原来的句子是用‘派件时间’这个字符串和那两个时间字符串进行匹配,当然没有结果了。 to_char(派件时间,'yyyy-MM-dd hh24:mi:ss')
ghx287524027 2014-09-19
  • 打赏
  • 举报
回复
数据库的时间格式是:日-月-年;你需要将两个时间格式匹配了
yiyongle 2014-09-19
  • 打赏
  • 举报
回复
ORA-01861: 文字与格式字符串不匹配,是你的派件时间和'2011-12-02 22:03:40'类型不一致,像楼上那样把时间to_char或者把'2011-12-02 22:03:40'to_date
bw555 2014-09-19
  • 打赏
  • 举报
回复
好久之前的帖子,咋这么多喜欢刨坟的呢?
Cifane 2014-09-19
  • 打赏
  • 举报
回复
select * from TAB_测试 where 派件时间 BETWEEN to_date('2011-02-01 22:03:40', 'YYYY-MM-DD HH24:MI:SS' and to_date('2011-12-02 22:03:40', 'YYYY-MM-DD HH24:MI:SS');
puxuanxi 2012-01-07
  • 打赏
  • 举报
回复
关注 中
我心飞翔 2012-01-07
  • 打赏
  • 举报
回复
假定你的“派件时间”字段为Date类型,请参考下面的代码:

select * from TAB_测试 where 派件时间 BETWEEN
to_date('2011-02-01 22:03:40', 'YYYY-MM-DD HH24:MI:SS'
and to_date('2011-12-02 22:03:40', 'YYYY-MM-DD HH24:MI:SS');

kai27ks 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 geniuswjt 的回复:]
select * from TAB_测试 where 派件时间 BETWEEN to_date('2011-02-01 22:03:40','yyyy-mm-dd hh24:mi:ss') and to_date('2011-12-02 22:03:40','yyyy-mm-dd hh24:mi:ss')

引用 6 楼 xxijun 的回复:
QQ8714111
[/Quote]
+1 报那个错误不是说你派件时间必须加引号而是提示你,你的格式和数据库的不符合
geniuswjt 2012-01-05
  • 打赏
  • 举报
回复
select * from TAB_测试 where 派件时间 BETWEEN to_date('2011-02-01 22:03:40','yyyy-mm-dd hh24:mi:ss') and to_date('2011-12-02 22:03:40','yyyy-mm-dd hh24:mi:ss')
[Quote=引用 6 楼 xxijun 的回复:]
QQ8714111
[/Quote]
xxijun 2012-01-05
  • 打赏
  • 举报
回复
QQ8714111
xxijun 2012-01-05
  • 打赏
  • 举报
回复
谁可以帮我搞定啊, 我给他个小红包!
xxijun 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 geniuswjt 的回复:]
select * from TAB_测试 where 派件时间 BETWEEN '2011-02-01 22:03:40' and '2011-12-02 22:03:40'

--字段不要加引号,加了引号数据库认为他是字符串!
[/Quote]

不加引号就是提示“-2147217913:ORA-01861: 文字与格式字符串不匹配

Phoenix_99 2012-01-05
  • 打赏
  • 举报
回复
to_date('2011-02-01 22:03:40','yyyy-mm-dd hh24:mi:ss')
shengfengluanshi 2012-01-05
  • 打赏
  • 举报
回复
派件时间的格式是怎么样的?
geniuswjt 2012-01-05
  • 打赏
  • 举报
回复
select * from TAB_测试 where 派件时间 BETWEEN '2011-02-01 22:03:40' and '2011-12-02 22:03:40'

--字段不要加引号,加了引号数据库认为他是字符串!
ICE-word 2012-01-05
  • 打赏
  • 举报
回复
把时间to_char下就可以了。
鸣宇淳 2012-01-05
  • 打赏
  • 举报
回复
1、 派件时间是字段名吗,那你为什么要加上 引号??
2、派件时间是Date类型的字段吗,那就要写成
select *
from TAB_测试
where 派件时间 BETWEEN to_date('2011-02-01 22:03:40', 'yyyy-mm-dd hh24:mi:ss') and
to_date('2011-12-02 22:03:40', 'yyyy-mm-dd hh24:mi:ss')
jelly 2012-01-05
  • 打赏
  • 举报
回复
select * from TAB_测试 where to_char(派件时间,'yyyy-MM-dd hh24:mi:ss') between '2011-02-01 22:03:40'and '2011-12-02 22:03:40' ;

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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