【问题标题】:PostgreSQL: Timestamp in the futurePostgreSQL:未来的时间戳
【发布时间】:2011-08-20 07:43:36
【问题描述】:

如何获得日期为 30 天后的时间戳?

我尝试过类似 now() + integer '30'... 但没用。

我正在运行 Postgres 8。

有什么想法吗?

【问题讨论】:

    标签: postgresql timestamp


    【解决方案1】:

    试试这样的:

    SELECT NOW() + '30 days'::interval
    

    【讨论】:

    • FWIW,语法interval '30 days' 也适用于as of 8.0
    • 是的...对于 9.1 now() + '30 days' 也可以,我还没有检查过早期版本。
    • 在为表设置默认值时,我们是否可以添加如何正确实现这一点?
    【解决方案2】:

    标准的SQL表达式是

    select current_timestamp + interval '30' day
    

    在数字周围加上引号,而不是在短语周围。请参阅the earliest SQL standard 我可以在网上找到,第 91 页。PostgreSQL 比标准灵活得多,这可能是好事也可能是坏事。我支持很多不同的 dbms——灵活性对我的伤害多于它的帮助。例如,PostgreSQL 就支持这种非标准语句。

    select current_timestamp + interval '1 month, 2 days, 3 hours, 2 minutes';
    

    【讨论】:

    • +1 用于使用标准方言,除非有令人信服的理由偏离。使用其他 SQL 风格来回切换更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2014-10-25
    • 1970-01-01
    • 2019-07-20
    • 2012-05-23
    相关资源
    最近更新 更多