如何在 postgresql 中的日期中添加加号和毫秒?
how to add a plus sign and milliseconds to a date in postgresql?
日期像 2021-07-23
预期的输出是这样的 2021-07-24 00:00:00+08
注意 +08
?
我试过下面这样,但我没有得到加号
s_table.school_date + INTERVAL '1 day'
知道如何使 +08
出现吗?
这是包含时区的时间。
在 Postgres 中尝试 运行 以下内容,它会 return 为您提供 +
或 -
之后的时区日期时间,具体取决于您所在的位置。
SELECT NOW();
编辑 01:
试试下面的代码:
s_table.school_date::timestamptz + INTERVAL '1 day'
我没能测试它,但你试过将该日期转换为 timestampz 吗?
请参阅 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 获得了时区特定信息。
我肯定会首先测试在事务中设置时区,因为我担心它会为您的整个数据库设置时区,这可能会影响数据库中发生的其他过程/查询。
希望对您有所帮助!抱歉,我无法在发送此信息之前先尝试一下。
编辑:看来我有点慢了!很高兴你想通了:)
日期像 2021-07-23
预期的输出是这样的 2021-07-24 00:00:00+08
注意 +08
?
我试过下面这样,但我没有得到加号
s_table.school_date + INTERVAL '1 day'
知道如何使 +08
出现吗?
这是包含时区的时间。
在 Postgres 中尝试 运行 以下内容,它会 return 为您提供 +
或 -
之后的时区日期时间,具体取决于您所在的位置。
SELECT NOW();
编辑 01:
试试下面的代码:
s_table.school_date::timestamptz + INTERVAL '1 day'
我没能测试它,但你试过将该日期转换为 timestampz 吗?
请参阅 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 获得了时区特定信息。
我肯定会首先测试在事务中设置时区,因为我担心它会为您的整个数据库设置时区,这可能会影响数据库中发生的其他过程/查询。
希望对您有所帮助!抱歉,我无法在发送此信息之前先尝试一下。
编辑:看来我有点慢了!很高兴你想通了:)