【问题标题】:how to add a plus sign and milliseconds to a date in postgresql?如何在 postgresql 中为日期添加加号和毫秒?
【发布时间】:2021-07-26 01:40:25
【问题描述】:

日期如2021-07-23

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

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

s_table.school_date + INTERVAL '1 day'

知道如何让+08 出现吗?

【问题讨论】:

    标签: postgresql postgresql-9.2


    【解决方案1】:

    这是包含时区的时间。

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

    SELECT NOW();
    

    Edit-01:

    试试下面的代码:

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

    【讨论】:

    • 不,我已经提供了我拥有的示例数据。它唯一的年、月、日。我必须将它与小时、分钟、秒以及加号和秒一起输出。请重新阅读我帖子中的描述。谢谢。
    • 我要加1天的间隔,请看上面的例子
    • 没关系。 .我已经像这样解决了(s_table.school_date + INTERVAL '1 day')::timestamptz
    • @sasori 也可以,或者我上面提供的代码。
    【解决方案2】:

    我无法对其进行测试,但您是否尝试过将该日期转换为时间戳?

    请参阅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 获得时区特定信息。

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 2014-10-12
      相关资源
      最近更新 更多