在jdbc中插入当前postgres服务器时间戳

时间:2017-11-21 13:05:06

标签: sql postgresql jdbc timestamp

我有一个移动应用程序,可以通过JDBC在Postgres数据库中插入。在数据库表中,我有一个时间戳列,我需要插入服务器的实时时间戳,以确保没有人插入假日期/时间。它将类似于:

INSERT INTO some_table VALUES(...,now());

此代码似乎正确,但如果移动设备具有不同的时区,则此差异反映在now()函数中。例如:

服务器的日期/时间:00:00:00-04

手机的日期/时间:00:12:34 +00

上面插入的结果:04:00:00

我已经尝试过其他方法,例如:

INSERT INTO some_table VALUES(...,now()::timestamp)
INSERT INTO some_table VALUES(...,current_timestamp)

1 个答案:

答案 0 :(得分:1)

如果您使用UTC时间戳来避免时区始终处于中间位置,那么这是有意义的。让客户关注转换到当前时区。

试试这样:

INSERT INTO some_table VALUES(..., now() at time zone 'utc')

来源:Using current time in UTC as default value in PostgreSQL