相对于当前日期的其他时区的时间戳

来自 PostgreSQL wiki
跳转到导航跳转到搜索

代码片段

相对于当前日期的其他时区的时间戳

适用于 PostgreSQL

任何版本

SQL

取决于


此页面包含生成“昨天洛杉矶上午 9 点”时间戳值的示例。

带时区的时间戳,相对于目标时区中的当前日期

=# select now();
             now              
-------------------------------
 2014-07-05 02:58:03.598569+02
(1 row)
=# select (date_trunc('day', now() AT TIME ZONE 'America/Los_Angeles' - interval '1 day') + time '09:00:00') AT TIME ZONE 'America/Los_Angeles';
       timezone        
------------------------
 2014-07-03 18:00:00+02
(1 row)


不带时区的时间戳,相对于目标时区中的当前日期

=# select now();
             now              
-------------------------------
 2014-07-05 02:58:03.598569+02
(1 row)
=# select (date_trunc('day', now() AT TIME ZONE 'America/Los_Angeles' - interval '1 day') + time '09:00:00');
     ?column?       
---------------------
 2014-07-03 09:00:00
(1 row)