gpt4 book ai didi

java - 使用 SQL 将 Date Java 与数据库表中的 DateTime 列进行比较

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:12 25 4
gpt4 key购买 nike

我有两个 Date Java 对象,它们将被分配给 sql 查询中的一些变量(因为我使用 Hibernate),以便将它们与 DateTime 类型进行比较列获取具有指定时间范围的行,例如:

  WHERE event_date >= :startDate and event_date < :finishDate

我无法直接比较日期和日期时间,所以我想到了 2 种可能的解决方案:

  • 尝试使用查询将 event_date 字段转换为比较前的日期字段。
  • 或者尝试将 date java 对象转换为 dateTime,我认为这可能是不可能的..

你会建议我做什么?

最佳答案

我猜你遇到问题是因为你使用了 setDate(如果我错了请纠正我)和 setDate 方法:

Binds the date (time is truncated) of a given Date object to a named query parameter.

改用 setTimestamp,它绑定(bind)给定 Date 对象的日期和时间:

java.util.Date startDate = … ;
java.util.Date finishDate = … ;
Query query = session.createQuery("from YourTable where event_date >= :startDate and event_date < :finishDate");
query.setTimestamp("startDate", startDate);
query.setTimestamp("finishDate", finishDate);


p.s.: 一定要使用 java.util.Date 对象并且不是 java.sql.Date 对象。

关于java - 使用 SQL 将 Date Java 与数据库表中的 DateTime 列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8238850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com