我有一个移动应用程序,可以通过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)
答案 0 :(得分:1)
如果您使用UTC时间戳来避免时区始终处于中间位置,那么这是有意义的。让客户关注转换到当前时区。
试试这样:
INSERT INTO some_table VALUES(..., now() at time zone 'utc')