java - 检查 java.util.date 和 MySql 时间戳是否属于同一天

标签 java mysql sql jpa

在Java中,我有一个Date对象,我应该如何将它与Mysql时间戳进行比较以检查它是否属于同一天?

select c.content, c.contentDate from Contents c where c.contentDate = ?1 and c.userName = ?2

上面的sql应该返回属于特定日期(Date)的记录。但是,如何比较Java Date和Sql Timestamp呢?

最佳答案

如果contentDate可以是给定日期的凌晨 2 点或晚上 9 点,那么您不能使用 contentDate = ? ,因为一整天没有单一值。你需要说contentDate >= ? and contentDate < ? ,其中第一个?一天开始时是午夜,第二个 ?第二天开始时是午夜。您可以在 Java 中计算这两个值(例如使用 CalendarLocalDate ),然后使用 setDate()关于PreparedStatement设置值。

LocalDate easter = LocalDate.of(2016, Month.MARCH, 27);

// Get all content from Easter Day (Mar 27, 2016)
String sql = "SELECT * FROM Contents WHERE contentDate >= ? and contentDate < ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setDate(1, java.sql.Date.valueOf(easter));
    stmt.setDate(2, java.sql.Date.valueOf(easter.plusDays(1)));
    try (ResultSet rs = stmt.executeQuery()) {
        while (rs.next()) {
            //code here
        }
    }
}

关于java - 检查 java.util.date 和 MySql 时间戳是否属于同一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948974/

相关文章:

sql - 从 plsql 输出/返回的 CLOB 值(指定的 LOB 定位器无效 : ORA-22275)

Java使用非final变量设置final变量

java - 为 NavigableMap 编写同步线程安全包装器

jquery - 订单子(monad)元素的可排序组

mysql - 检查 MySQL 中特定范围内的值

SQL解码空值

javascript - 左加入 lowdb

java - Sax:XMLReader:将 CSV 流式传输并转换为 Xml,同时验证结果

java - 混淆共享的 Maven 模块?

mysql - 错误 1452 (23000) : Cannot add or update a child row: a foreign key constraint fails MySQL