【发布时间】:2015-09-04 11:21:50
【问题描述】:
我正在尝试将 date_trunc 函数与特定时区一起使用,其中从列中选择参数。
它可以在没有“时区”的情况下工作:
SELECT (date_trunc('day', transactions.created_at))::DATE AS period_start FROM transactions LIMIT 1
当传入的参数是字符串时也有效:
SELECT (date_trunc('day', TIMESTAMP '2015-09-04 16:00:00' at time zone '+08:00'))::DATE AS period_start FROM transactions LIMIT 1
但是当我尝试像这样将两者结合起来时:
SELECT (date_trunc('day', TIMESTAMP transactions.created_at at time zone '+08:00'))::DATE AS period_start FROM transactions LIMIT 1
它给了我一个“在“交易”处或附近出现语法错误。
我尝试使用 to_char 将其转换为字符串,但也没有运气。我怎样才能做到这一点?
【问题讨论】:
-
如果你想投你的
created_at字段,你必须这样写:cast (transactions.created_at as timestamp) -
@Houari 我觉得太傻了,太简单了。非常感谢你的帮助!你想把它写成答案吗?
标签: postgresql datetime timezone