hsbljyy 2009-12-19 10:07
浏览 241
已采纳

关于PreparedStatement日期类型比较的一些问题

问题是这样的:

数据库储存的字段类型是时间类型,而用户需要根据时间区间来进行查询。例如:
表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来转。

  • 写回答

3条回答 默认 最新

  • yeminping 2009-12-19 12:01
    关注

    要查2009年12月19日这一天的数据,要改开始值2009-12-19 00:00:00,结束值2009-12-19 23:59:59

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!