【问题标题】:Postgres + Javascript + TimezonePostgres + Javascript + 时区
【发布时间】:2020-07-09 01:40:45
【问题描述】:

我的 postgres 数据库有 users 表,我将创建日期存储在 UTC(数据库时区未设置并且是 UTC)。 因此,如果来自纽约的某人在当地时间 3 月 26 日晚上 11 点注册,它实际上将保存为 3 月 27 日凌晨 3 点,到目前为止一切顺利。 我遇到的问题是,当我将其显示为统计数据时,例如今天或特定日期注册的用户数量,事情变得很棘手。 我是否需要从用户的时区发送数据库并据此查询数据库?

【问题讨论】:

  • 是的,“...今天注册...”需要您确定时区参考。询问用户,他/她需要决定什么是“参考时区”。并把它写下来,只是说'
  • 同意。 “今天”的概念取决于时区。在某些情况下,您需要用户的时区。在其他情况下,它可能是您企业的时区、UTC 或其他时区。决定后,您可以将该时区的开始/结束时间转换为 UTC,然后使用这些值来查询您的数据库。

标签: javascript sql postgresql timezone


【解决方案1】:

您可以通过以下方式转换为当地时区:

SELECT timezone('America/New_York', created_at)::date

Here 是一个 dbfiddle,它在大多数情况下会给出不同的日期。

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多