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条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog