【发布时间】:2013-11-05 10:40:18
【问题描述】:
我的 PostgreSQL 9.2 服务器上出现了 poltergeist。
当我插入包含时间戳列 (date_published) 的行时,当我运行以下查询时,该行出现在列表中:
select * from a_table
但是当我运行查询时,我将提到的日期 (date_published) 列与 CURRENT_TIMESTAMP 进行比较时,它不会显示该行。
select * from a_table
WHERE date_published < current_timestamp
上面的查询仅显示大约 3-4 小时后的行。
date_published 列类型为:
...,date_published TIMESTAMP(6) WITHOUT TIME ZONE NULL,...
【问题讨论】:
-
您从哪里获得要放入
DATE_PUBLISHED列的值?如果您的查询在插入后 3-4 小时后返回记录,这可能意味着您服务器上的时间更早。你能检查一下CURRENT_TIMESTAMP函数返回什么吗? -
谢谢。我使用 JSF 框架和 JPA 来插入行本身。分配给实体类的 DATE_PUBLISHED 列作为带有 TIMESTAMP 注释的 Date 数据类型:@Temporal(TemporalType.TIMESTAMP) private Date datePublished;
-
SELECT CURRENT_TIMESTAMP 显示当前时间
-
好的,你能通过 JSF 和 JPA 插入一行并检查
DATE_PUBLISHED列中插入的日期吗?似乎框架的时区不匹配或时间设置错误,您的列中的时间错误。 -
它在 2013-11-05 12:50:00 插入了这个值。选择 current_timestamp 查询显示此值 2013-11-05 17:40:55
标签: jquery sql postgresql timestamp compare