如何在PostgreSQL中的不同时区返回当前日期

时间:2016-06-24 15:33:23

标签: postgresql date timezone

我正在开发一个使用东部时间且数据库设置为太平洋时间的应用程序。这已经引起了一些问题,但我们被告知它不可能是任何其他方式,所以我们只需要解决它。

无论如何,我遇到麻烦的事情之一是今天的约会。由于数据库位于太平洋,如果我在凌晨1点使用current_date询问今天的日期,它会给我昨天的日期。我已经尝试设置时区和添加/减去间隔,但它似乎永远不会像我期望的那样工作,而且我宁愿不必在凌晨1点进行大量测试才能使其工作。

是否有一种简单的方法可以在PostgreSQL的给定时区内为今天的日期返回DATE?

2 个答案:

答案 0 :(得分:10)

select current_date at time zone 'UTC',current_date::timestamp ;  或任何其他区域

enter image description here

<强>更新

select (current_date at time zone 'UTC')::date,current_date::date

enter image description here

答案 1 :(得分:3)

SELECT date(timezone('EST', now()))

无论数据库时区如何,都将返回Eastern Standard Time中的当前日期

(或其他任何时区,无论出于何种原因,都不都可以使用偏移量...)

SELECT date(timezone('UTC±XX', now()::timestamp))

如果您要使用偏移量,尽管如此,它仍将UTC offsets一起使用...