问题是这样的:
数据库储存的字段类型是时间类型,而用户需要根据时间区间来进行查询。例如:
表Test有CreateTime这个字段,该字段是datetime类型的,而我的SQL语句是 select * from Test where CreateTime >= ? and CreateTime <= ? 然后用PreparedStatement setDate(new java.sql.Date(QueryDate));传入两个值。这个时候,数据库实际上还是以时间类型进行比较。假如说我查的是2009年12月19日到2009年12月19日,而假设表中有数据有一条数据的CreateTime为2009-12-19 10:02:56.429 那么执行后的结果却没有将该记录查出来。
这样的情况应该如何解决?
我碰到的是不同的数据库,有可能是Oracle也有可能是SQL SERVER,所以别问是什么类型的数据库。
我想应该先将查询的字段转成日期类型的,这样应该就不会出现bug了,可是我不知道能不能直接通过PreparedStatement来转。