我是Postgres / SQL的新手。我正在使用的数据库中的所有时间戳都存储为UTC格式。
我正在尝试执行以下查询,但由于时区不同,我的所有结果均已关闭。如何在此查询中解决此问题?我在美国\芝加哥或CST时区工作。
select id FROM audit_log WHERE (action_id LIKE '%auth%' AND successful = 'true' AND timestamp BETWEEN '$from' AND '$to'
$from = date("Y-m-d 06:00:00");
$to = date("Y-m-d 11:59:59");
答案 0 :(得分:0)
您可以使用以下表达式将UTC时间戳转换为时区PST:
<head>
在您的查询中:
timestamp at time zone 'utc' at time zone 'cst'
不相关的注释:
如果select id
FROM audit_log
WHERE
action_id LIKE '%auth%'
AND successful = 'true'
AND timestamp at time zone 'utc' at time zone 'cst' BETWEEN ? AND ?
是布尔值,则可以执行successful
您应该使用参数化查询,而不是在查询字符串中连接变量;这使您的代码更安全,更有效。