需求:根据用户输入的时间段查询出记录。
Oracle数据库中一个一个存放时间的字段,字段类型是DATE型的,其中有这样的两条数据
这个字段存有时分秒,用户输入的时候是按日期来查询的,也就是说只有年月日,最初我是这样查询的:
- select * from tb_product where createdate>=to_date('2011-6-13','yyyy-MM-dd') and createdate<=to_date('2011-6-16','yyyy-MM-dd');
这样查询的话2011/6/16这条记录是查不出来的,因为字段存了时分秒。
最后通过群里的朋友的指点改成了这样:
- select * from tb_product where to_char(createdate,'yyyy-MM-dd')>='2011-6-13' and to_char(createdate,'yyyy-MM-dd')<='2011-6-16';
这样也查不出来,不是语句错了,而是我日期格式错了,日期格式是‘yyyy-MM-dd’这样的,而我写的是2011-6-13,改成
2011-06-13和2011-06-16就可以了。