TO_DATE()
函數在 SQL 中用于將字符串轉換為日期
以下是一個使用 TO_DATE()
函數處理時區的示例:
-- 假設你有一個包含 UTC 時間的字符串列,如 '2021-06-01T12:34:56Z'
WITH example_data AS (
SELECT '2021-06-01T12:34:56Z' AS utc_time
)
-- 使用 TO_DATE() 和 AT TIME ZONE 將 UTC 時間轉換為特定時區的時間
SELECT
TO_DATE(SUBSTR(utc_time, 1, 19), 'YYYY-MM-DD"T"HH24:MI:SS') AT TIME ZONE 'America/New_York' AS new_york_time
FROM
example_data;
在這個示例中,我們首先使用 SUBSTR()
函數從 UTC 時間字符串中提取日期和時間部分(去掉尾部的 ‘Z’)。然后,我們使用 TO_DATE()
函數將提取的字符串轉換為日期,并使用 AT TIME ZONE
子句將其轉換為 ‘America/New_York’ 時區的時間。
請注意,AT TIME ZONE
子句中的時區名稱可能因數據庫而異。在這個示例中,我們使用了一個通用的時區名稱。你需要根據你使用的數據庫系統選擇合適的時區名稱。例如,在 PostgreSQL 中,你可以使用 IANA 時區數據庫中的時區名稱,如 ‘America/New_York’。在 Oracle 數據庫中,你需要使用 DBTIMEZONE 或 SESSIONTIMEZONE 函數來設置時區。