Google 云平台如何管理时区?

How Google cloud platform manages timezones?

我有一个数据库,但我不知道时间存储在哪个时区。但我需要知道这一点,因为我需要在特定的时区生成报告。

select INVOICE_DATE, timestamp(INVOICE_DATE), timestamp(INVOICE_DATE, "UTC+1"),  CURRENT_TIMESTAMP(), TIMESTAMP(DATETIME (INVOICE_DATE), "UTC-2")
FROM `SALES` s
limit 1000;

无论我有什么发票日期,比如今天 13:00,当我使用 UTC+1 时它会变成 12:00;减去而不是增加小时数。我希望它变成 14:00.

所以我有两个主要问题。

我怎么知道我的时间存储在哪个时区? 如何更改给定记录的时区以匹配所需的时区,例如 GTM-4?

日期时间数据类型存储日期和时间。例如:

2021 年 10 月 10 日 10:26pm

这既不是当地时间也不是 UTC 时间...它只是一个时间说明符。如果您不知道数据保存在哪个时区,则无法将其指定为绝对时间的特定点。与绝对时间比较时,它假定日期时间是 UTC。

所以...如果我的值包含“2021-10-10T22:26:00”并且现在是 UTC 2021-10-10T22:26:00 那么如果我减去现在值,答案就是 0。

并且...如果我的值包含“2021-10-10T22:26:00”并且现在是 UTC+1 2021-10-10T22:26:00 那么如果我减去现在值,答案是1小时。

在您的示例中,如果您的当前值为 13:00 并且您创建了一个时间戳值“2021-10-10T13:00:00”,并说这将被解释为UTC+1 ...你是说你比 UTC 早一小时,而且时间 (UTC) 确实是 12:00.

要向自己证明...请访问:

https://time.is/UTC+1

https://time.is/UTC

对于第一个 link,查看显示的时间并说“如果我在时区 UTC+1,这就是我在挂钟上看到的时间”。然后访问第二个 link 并说“这将是 UTC 的同一时间”。你会看到UTC+1提前一小时。