Postgres和PHP-将UTC时间戳转换为本地时间

时间:2020-04-13 21:11:00

标签: php sql postgresql date timezone

我是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");

1 个答案:

答案 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

  • 您应该使用参数化查询,而不是在查询字符串中连接变量;这使您的代码更安全,更有效。