在Postgres获取当地时间的最简单方法是什么?

时间:2013-11-18 22:30:49

标签: postgresql

在Postgres中编写以下内容是否有更简洁的方法:

DATE(NOW() AT TIME ZONE time_zone)

即。获取时区time_zone的记录的当地时间?

理想情况下,我想做这样的事情:

NOW(time_zone)

这不起作用,但有什么类似和干净我可以使用吗?

1 个答案:

答案 0 :(得分:0)

=> SELECT DATE(NOW() AT TIME ZONE 'UTC');
2013-11-19

=> SELECT DATE(NOW() AT TIME ZONE 'PST');
2013-11-18

<强>更新

如果您要将此查询抽象为custom function,可以按如下方式创建:

=> CREATE FUNCTION date_with_time_zone() RETURNS date AS '
     SELECT DATE(NOW() AT TIME ZONE ''PST'');
     ' LANGUAGE SQL;
CREATE FUNCTION

=> SELECT date_with_time_zone();
2013-11-18

虽然您仍需要发出SELECT命令,但只需调用该函数而不是整个查询,即可返回带有时区的当前日期。