如何在postgresql中为日期添加加号和毫秒? Edit-01:

问题描述

日期就像 2021-07-23

预期的输出是这样的 2021-07-24 00:00:00+08 注意 +08 吗?

我在下面尝试过,但我没有得到加号

s_table.school_date + INTERVAL '1 day'

知道如何使 +08 出现吗?

解决方法

这是包含时区的时间。

尝试在 Postgres 中运行以下命令,它会根据您所在的位置返回带时区的日期时间,该时区在 +- 之后。

SELECT NOW();

Edit-01:

试试下面的代码:

s_table.school_date::timestamptz + INTERVAL '1 day'
,

我无法测试它,但您是否尝试将该日期转换为时间戳?

请参阅有关不同时间戳类型的 this page from postgresql 教程。

所以你可以试试:

(s_table.school_date + INTERVAL '1 day')::timestampz

将当前值转换为带时区的时间戳。

如果返回的时区不正确,您可以使用 SET timezone='America/Los_Angeles' 或查找当前数据库使用的时区 SHOW timezone; 您还可以使用 SELECT * FROM pg_timezone_names; 查看数据库的所有时区。>

我从 this resource 获得了特定于时区的信息。

我一定会先测试在事务中设置时区,因为我担心它会为整个数据库设置时区,并且可能会影响数据库中发生的其他过程/查询。

我希望这会有所帮助!抱歉,我无法在发送此信息之前先尝试一下。

编辑:看起来我有点慢!很高兴你想通了:)