如何在不影响日期的情况下更新列中的时间?

How can I update the time in a column without affecting the date?

在我的数据库中,我有一个 DATE 类型的列,其中存储了很多日期。我使用 timestamptz 将其转换为 DATETIME。但是时间是00:00:00.

我想一直更改为 09:00:00 我尝试了很多更新和设置,但我只是遇到错误。

UPDATE note
SET entered = entered + TIMESTAMP(DATE(entered), TIME('09:00:00');

错误信息如下:

ERROR: syntax error at or near "DATE" LINE 2: SET entered = entered + TIMESTAMP(DATE(entered), TIME('09:00... ^ SQL state: 42601 Character: 47

谁能帮我改时间?

我们可以尝试将所有时间戳截断为午夜,然后加上 9 小时:

UPDATE note
SET entered = DATE_TRUNC('day', entered) + interval '9' hour;

您可以尝试添加一个时间间隔,像这样

UPDATE note
SET entered = enetered + interval '9 hours';