PostgreSQL:未来时间戳

11

如何获取从现在开始30天后的日期时间戳?

我尝试了像now() + integer '30'这样的方法,但不起作用。

我正在运行Postgres 8。

有什么想法吗?

2个回答

24

试试这样做:

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

2
顺便提一下,语法interval '30 days'也适用于8.0版本 - Charles
1
是的...对于9.1版本,now() + '30 days'也可以使用,我还没有检查过早期版本。 - Szymon Lipiński
1
有没有可能我们也能够添加一下,当为表设置默认值时如何正确实现呢? - kuanb

8
标准的SQL表达式是:
select current_timestamp + interval '30' day

在数字周围加引号,而不是在短语周围加引号。请参见我在线找到的最早的SQL标准(第91页)。PostgreSQL比标准更灵活,这可能是好事也可能是坏事。我支持许多不同的数据库管理系统--灵活性常常会对我造成伤害,而不是帮助我。例如,PostgreSQL支持这种非标准语句。

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

如果没有强烈的理由需要偏离标准方言,建议使用标准方言。这样可以更轻松地在其他SQL语言之间切换。 - Eliot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接