删除带时区的时间戳字段中的时间戳部分

时间:2019-01-24 07:03:04

标签: java postgresql sql-timestamp

我需要将Java LocalDateTime字段更新为Postgres表,其中该字段是带有时区的时间戳,但是要注意的是我必须将时间字段设置为00:00:00 + 00并保持日期字段不变。

我已经像这样修改了Java中的字段

dateToBeSet.withNano(00).withSecond(00).withMinute(00).withHour(00)

但是当数据被插入数据库时​​,在日志中我可以看到数据被插入为2019-01-23 00:00:00+05:30。 我该如何摆脱这个+5:30而只是插入从Java端获取的数据?

数据库中的期望值为 2019-01-23 00:00:00+00

1 个答案:

答案 0 :(得分:0)

您无法摆脱数据库中的时区,因为它没有存储在该时区。

内部存储的是UTC时间戳,当它转换为字符串时,它将转换为timezone参数所指示的时区。

因此,如果希望时间戳记相同,则无论当前timezone的设置如何,都需要使用timestamp without time zone数据类型。

或者,使用构造检索值

ts_field AT TIME ZONE 'IST'

使用您要在其中呈现时间戳的时区名称。