postgresql - 将 postgresql 中的 UTC 时区转换为 EST(本地时间)

标签 postgresql timezone

我是 PostgreSQL 的新手,我想知道是否有一种直接的方法可以使用函数将表中的时间戳值转换为不同的时区。在我的例子中,它是 UTC 到 EST。

例如,这些是我需要转换为 EST 的值(不只是一个值,而是表中的所有值)

date
-------------------
2015-10-24 16:38:46
2016-01-19 18:27:00
2016-01-24 16:14:34
2016-02-09 23:05:49
2016-02-11 20:46:26

最佳答案

在伦敦,我们目前比 UTC 早 1 小时。所以 - 如果我使用没有时间戳的时区并说它是 UTC,我会为我的本地时区打印它。

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
        timezone        
------------------------
 2015-10-24 17:38:46+01
(1 row)

但是根据返回的值判断,您想要“EST”,它似乎在美洲的某个地方。如果需要,您可以将表达式包装在一个小的 SQL 函数中。

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
      timezone       
---------------------
 2015-10-24 11:38:46
(1 row)

编辑:如何在查询中完成

SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;

关于postgresql - 将 postgresql 中的 UTC 时区转换为 EST(本地时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341060/

相关文章:

sql - 按具有重复对的行分组,如果在任何行中为真 - 结果为真

带有时区偏移量而不是 Z 值的 MySQL ISO 8601 日期

php - php geonames 时区中的 echo 状态消息

mysql - MySQL 和 MSSQL 服务器上的 UNIX 时间戳

ruby-on-rails - 无法使用带有 Rails 4 的 ActiveAdmin 创建新用户

python - 使用 read() 方法从 Amazon S3 读取大型 JSON 文件时出现内存错误

python - POSTGRES - 具有多个连接的高效 SELECT 或 INSERT

postgresql - 在 pg_restore 中,如何使用 postgres 连接字符串来指定主机/数据库/用户名/密码?

javascript - getTimezoneOffset() 与夏令时

javascript - 使用 Moment Timezone 格式化指定时区的日期