我在PostgreSQL 9.2服务器上遇到了麻烦。
当我插入包含时间戳列(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,...
找到解决方案!!!
正如@Przemyslaw-Kruglej所提到的,问题在于PostgreSQL服务器的时区配置。您需要在PostgreSQL配置文件中配置时区。
对于windows用户,请转到/PostgreSQL/9.2/data/PostgreSQL.conf
将"log_timezone"one_answers"timezone"更改为您的时区位置。就我而言,它是"亚洲/阿拉木图">
保存并重新启动服务器。在我的情况下,所有更改都是在电脑重新启动后才开始工作的。
所以,祝你好运!