簡體   English   中英

谷歌雲平台如何管理時區?

[英]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?

Datetime 數據類型存儲日期和時間。 例如:

2021 年 10 月 10 日晚上 10:26

這既不是本地時間也不是 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

對於第一個鏈接,請查看顯示的時間並說“如果我在時區 UTC+1,這就是我在掛鍾上看到的時間”。 然后訪問第二個鏈接並說“這將是 UTC 的同一時間”。 您會看到 UTC+1 提前一小時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM