如何在时间戳列上按日期选择?

时间:2014-12-19 09:50:04

标签: sql postgresql

我有一个带有timestamp条目的SQL表。

现在我想根据日期(特定日期)选择条目,忽略时间。

这可能,或者我是否必须另外保存sql.date列以获取特定日期的所有条目?

@Entity
public class MyEntry {
    @Temporal(TemporalType.TIMESTAMP)
    private Date date;
}

这个sql没有结果,因为查询只查找没有时间部分的日期。

SELECT * FROM mytable wher date = '2015-10-10'

1 个答案:

答案 0 :(得分:0)

您必须将其转换为带时区的时间戳或时间戳

SELECT *
  FROM mytable
 WHERE date >= '2015-10-10 00:00:00.000'::timestamp
   AND date < '2015-10-11 00:00:00.000'::timestamp

SELECT *
  FROM mytable
 WHERE date BETWEEN '2015-10-10 00:00:00.000'::timestamp AND '2015-10-11 00:00:00.000'::timestamp

如果查询是自动生成的,您应该考虑将生成基数从date更改为long。

new Date().getTime();