我试图从postgres中的查询中提取日期.时间戳存储为UTC,因此如果我有2014年1月1日02:00:00,我希望太平洋时间的日期是2013年12月31日,而不是2014年1月1日.我非常接近,但查询2和查询3仍然返回2014年1月1日.

SELECT '1-1-2014 02:00:00'::timestamp at time zone 'America/Los_Angeles';

返回

2014-01-01 02:00:00-08

-

SELECT CAST('1-1-2014 02:00:00'::timestamp at time zone 'America/Los_Angeles' AS Date);

返回

2014-01-01

但我希望它能退回2013-12-31美元.

SELECT CAST('1-1-2014 00:02:00'::timestamp at time zone 'America/Los_Angeles' AS Date) at time zone 'America/Los_Angeles';

返回

2014-01-01 00:00:00

但我希望它能退回2013-12-31 00:00:00美元

我基本上想返回它所在时区的日期,在本例中是太平洋时区.

推荐答案

如果是没有时区的时间戳,您需要首先告诉它使用UTC时区,然后转换到另一个时区:

SELECT '1-1-2014 02:00:00'::timestamp at time zone 'UTC' at time zone 'America/Los_Angeles';
      timezone       
---------------------
 2013-12-31 18:00:00

Postgresql相关问答推荐

尽管Jooq已经是uuid类型,Jooq仍会启用我的UID,为什么?

哪种数据类型是除法的结果?

使用函数返回值作为另一个函数的参数

在PostgreSQL中,`MY_VARIABLE IN(<;Long_ARRAY_of_Items>;)`何时是FAST?

时间戳的postgreSQL-to_char如果为零,则不显示微秒

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

如何重新格式化已获取的 psql 查询输出?

如何在 MockDataProvider 中创建自定义 JOOQ 记录?

使用 JDBC 连接到 PostgreSql 的本地实例

如何获得区间的绝对值

如何更改几何列的 SRID?

如何将 DELETE 的返回值插入到 postgresql 中的 INSERT 中?

带有双引号的 postgresql COPY 和 CSV 数据

django.db.utils.IntegrityError:duplicate key value violates unique constraint "django_content_type_pkey"

如何将参数值添加到 pgadmin sql 查询?

在 MAC OS X 10.6 for PostgreSQL 上设置 SHMMAX 等值

为什么 rake db:migrate 有时会在 structure.sql 中添加尾随空格?

从 5 分钟前的表中获取行

使用python将数据从csv复制到postgresql

PostgreSQL - GROUP BY 子句或用于聚合函数