oracle查询数据问题 date字段的格式是yyyy-mm-dd hh:mm:ss 如2011-1-1 9:08:30这种我想根据小时查数据如表

date money
2011-1-1 9:28:30 10
2011-1-1 8:08:30 30
2011-1-1 10:08:30 20
2011-2-1 12:08:30 50
查询2011-1-1 8点到10点之间的数据该怎么写sql语句

第1个回答  2011-05-23
1、你那日期格式错了,分钟不是mm,是mi;
2、确定你8点到10点之间,这两头的时间点是开区间、闭区间还是半开半闭区间。如果是闭区间的话用between就行,如果不是,就用> AND <
3、你看到的2011-1-1 8:08:30格式,而不是2011-01-01 08:08:30,是因为你的PL/SQL Developer中设置的问题。
SELECT DATE,MONEY
FROM TABLE
WHERE DATE>=TO_DATE('2011-02-01 08:00:00','YYYY-MM-DD HH24:mi:ss')
AND DATE<DATE>=TO_DATE('2011-02-01 10:00:00','YYYY-MM-DD HH24:mi:ss')
第2个回答  2011-05-23
select * from table_name where date between to_date('2011-1-1 8:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2011-1-1 10:59:59','yyyy-mm-dd hh24:mi:ss');追问

能把日期和时间分开吗 像楼上那样

追答

分开就如同楼上吧

追问

如同?一样的话我试过了 不报错但查不到数据 我用的oracle数据库

第3个回答  2011-05-25
SELECT DATE,MONEY
FROM TABLE
WHERE DATE>=TO_DATE('2011-02-01 08:00:00','YYYY-MM-DD HH24:mi:ss')
AND DATE<DATE>=TO_DATE('2011-02-01 10:00:00','YYYY-MM-DD HH24:mi:ss')
第4个回答  2011-05-22
select * from table_name
where
to_char(date,'hh')>=8 and to_char(date,'hh')<11 and to_char(date,'yyyy-mm-dd')='2011-1-1'追问

语句是没错 但是查不到数据啊

追答

1.你的date是关键字,可能是这的问题,to_char(date,'hh') 中date替换成 "date" 用双引号括起来,还有你在创建表的时候date是使用的大写的话要用"DATE",小写要用"date"。
2.你的date列是什么类型?是varchar2还是timestamp类型,如果是timestamp应该是可以查询出数据的,是varchar2就不一定了。

本回答被提问者采纳
相似回答