有没有更简洁的方法在 Postgres 中编写以下内容:
DATE(NOW() AT TIME ZONE time_zone)
即获取带有时区的记录的当地时间time_zone
?
理想情况下我想做这样的事情:
NOW(time_zone)
这不起作用,但是我可以使用类似且干净的东西吗?
=> SELECT DATE(NOW() AT TIME ZONE 'UTC');
2013-11-19
=> SELECT DATE(NOW() AT TIME ZONE 'PST');
2013-11-18
UPDATE:
如果您想将此查询抽象为自定义功能 http://www.postgresql.org/docs/8.0/static/xfunc-sql.html,您可以按如下方式创建一个:
=> 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
命令,只需调用该函数即可返回带时区的当前日期,而不是整个查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)