在Postgres中编写以下内容是否有更简洁的方法:
DATE(NOW() AT TIME ZONE time_zone)
即。获取时区time_zone
的记录的当地时间?
理想情况下,我想做这样的事情:
NOW(time_zone)
这不起作用,但有什么类似和干净我可以使用吗?
答案 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
命令,但只需调用该函数而不是整个查询,即可返回带有时区的当前日期。