【发布时间】:2019-03-07 03:19:03
【问题描述】:
在我们的应用程序中,我们将用户的时区与用户记录一起存储在数据库中。 然而,不知何故,我们最终得到了无效的时区(就 postgres 而言)。可能是因为原始值来自不同的来源...
现在,当我们尝试在其中一个查询中使用时区时,例如:
select current_time, u.*
from users u
where extract(hour from (current_time at time zone u.time_zone)) = 8
我们收到如下错误:
错误:时区“US/Pacific-New”无法识别
处理此问题的最佳方法是什么?如何识别所有包含无效时区的记录?
【问题讨论】:
-
他们不应该在 pg_timezone_names 表中都有匹配吗?如果他们不想尝试模糊匹配?
-
@Slumdog 好吧,理想情况下,我想将记录修复为 postgres 可以理解的内容。
-
听起来像对 pg_timezone_names 的左连接将是一个好的开始,但可以找到损坏的行。
标签: postgresql timezone