選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

CONVERT_TIMEZONE 函數

焦點模式
CONVERT_TIMEZONE 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CONVERT_TIMEZONE 可將時間戳記從一個時區轉換為另一個時區。函數會自動調整日光節約時間。

語法

CONVERT_TIMEZONE( ['source_timezone',] 'target_timezone', 'timestamp')

引數

source_timezone

(選用) 目前時間戳記的時區。預設值為 UTC。如需詳細資訊,請參閱時區使用須知

target_timezone

新時間戳記的時區。如需詳細資訊,請參閱時區使用須知

timestamp

時間戳記欄或運算式會隱性轉換為時間戳記。

傳回類型

TIMESTAMP

時區使用須知

source_timezonetarget_timezone 可以指定為時區名稱 (例如 'Africa/Kampala' 或 'Singapore') 或時區縮寫 (例如 'UTC' 或 'PDT')。您不需要將時區名稱轉換為名稱或縮寫轉換為縮寫。例如,您可以從來源時區名稱 'Singapore' 中選擇時間戳記,並將其轉換為時區縮寫 'PDT' 中的時間戳記。

注意

由於當地季節性時間,例如日光節約時間,使用時區名稱或時區縮寫的結果可能不同。

使用時區名稱

若要檢視目前和完整的時區名稱清單,請執行下列命令。

select pg_timezone_names();

每一列都包含以逗號分隔的字串,其中包含時區名稱、縮寫、UTC 位移,以及時區是否遵守日光節約時間 (t 或 ) 的指標f。以下列程式碼片段為例,其將顯示兩個產生的資料列。第一列是時區 Antarctica/South Pole、縮寫 NZDT,與 UTC 13:00:00偏移,f並指出它未遵守日光節約時間。第二列是時區 Europe/Paris、縮寫 CET,與 UTC 01:00:00偏移,f並指出它遵守日光節約時間。

pg_timezone_names ------------------ (Antarctica/South_Pole,NZDT,13:00:00,t) (Europe/Paris,CET,01:00:00,f)

執行 SQL 陳述式以取得整個清單並尋找時區名稱。大約會傳回 600 個資料列。雖然部分傳回的時區名稱為大寫首字母或縮寫 (例如,GB、PRC、ROK),CONVERT_TIMEZONE 功能仍會將其視為時區名稱,而非時區縮寫。

如果您使用時區名稱指定時區,CONVERT_TIMEZONE 會自動調整日光節約時間 (DST) 或任何其他當地季節性通訊協定,例如夏令時間、標準時間或冬季時間,該時區在「時間戳記」指定的日期和時間內生效。例如,'Europe/London' 在冬天代表 UTC,在夏天增加一小時。

使用時區縮寫

若要檢視目前和完整的時區縮寫清單,請執行下列命令。

select pg_timezone_abbrevs();

結果包含逗號分隔字串,其中包含時區縮寫、UTC 位移,以及時區是否觀察到日光節約時間 (t 或 ) 的指標f。以下列程式碼片段為例,其將顯示兩個產生的資料列。第一列包含太平洋日光時間 的縮寫PDT,與 UTC 有-07:00:00偏移,並t指出它遵守日光節約時間。第二列包含太平洋標準時間 的縮寫PST,與 UTC 有-08:00:00偏移,f並指出它未遵守日光節約時間。

pg_timezone_abbrevs -------------------- (PDT,-07:00:00,t) (PST,-08:00:00,f)

執行 SQL 陳述式以取得整個清單,並根據其偏移量和日光節約時間指標尋找縮寫。大約會傳回 200 個資料列。

時區縮寫代表與 UTC 的固定偏差。如果您使用時區縮寫指定時區,CONVERT_TIMEZONE 會使用 UTC 的固定位移,而且不會針對任何本機季節性通訊協定進行調整。

使用 POSIX 樣式格式

POSIX 樣式時區規格的格式為 STDoffsetSTDoffsetDST,其中 STD 是時區縮寫、位移是 UTC 西部小時的數值位移,而 DST 是選用的日光節約區域縮寫。假設日光節約時間比給定位移提前一小時。

POSIX 樣式時區格式使用格林威治以西的正偏移,與 ISO-8601 慣例不同,此是使用格林威治以東的正偏移。

以下是 POSIX 樣式時區的範例:

  • PST8

  • PST8PDT

  • EST5

  • EST5EDT

注意

Amazon Redshift 不會驗證 POSIX 樣式時區規格,所以可能會將時區設為無效值。例如,即使將時區設為無效值,下列命令不會傳回錯誤。

set timezone to ‘xxx36’;

範例

許多範例都使用 TICKIT 範例資料集。如需詳細資訊, 請參閱範本資料庫

以下範例會將時間戳記值從預設 UTC 時區轉換為 PST。

select convert_timezone('PST', '2008-08-21 07:23:54'); convert_timezone ------------------------ 2008-08-20 23:23:54

以下範例會將 LISTTIME 欄位中的時間戳記值從預設 UTC 時區轉換為 PST。即使時間戳記是在日光節約時間期間,其會轉換為標準時間,因為目標時區是指定為縮寫 (PST)。

select listtime, convert_timezone('PST', listtime) from listing where listid = 16; listtime | convert_timezone --------------------+------------------- 2008-08-24 09:36:12 2008-08-24 01:36:12

以下範例會將時間戳記 LISTTIME 欄位從預設 UTC 時區轉換為 US/Pacific 時區。目標時區使用時區名稱,且時間戳記是在日光節約時間期間,因此函數會傳回日光時間。

select listtime, convert_timezone('US/Pacific', listtime) from listing where listid = 16; listtime | convert_timezone --------------------+--------------------- 2008-08-24 09:36:12 | 2008-08-24 02:36:12

以下範例會將時間戳記字串從 EST 轉換為 PST:

select convert_timezone('EST', 'PST', '20080305 12:25:29'); convert_timezone ------------------- 2008-03-05 09:25:29

以下範例會將時間戳記轉換為美國東部標準時間,因為目標時區使用時區名稱 (America/New_York) 且時間戳記是在標準時間期間。

select convert_timezone('America/New_York', '2013-02-01 08:00:00'); convert_timezone --------------------- 2013-02-01 03:00:00 (1 row)

以下範例會將時間戳記轉換為美國東部日光時間,因為目標時區使用時區名稱 (America/New_York) 且時間戳記是在日光時間期間。

select convert_timezone('America/New_York', '2013-06-01 08:00:00'); convert_timezone --------------------- 2013-06-01 04:00:00 (1 row)

以下範例示範的是偏移的使用。

SELECT CONVERT_TIMEZONE('GMT','NEWZONE +2','2014-05-17 12:00:00') as newzone_plus_2, CONVERT_TIMEZONE('GMT','NEWZONE-2:15','2014-05-17 12:00:00') as newzone_minus_2_15, CONVERT_TIMEZONE('GMT','America/Los_Angeles+2','2014-05-17 12:00:00') as la_plus_2, CONVERT_TIMEZONE('GMT','GMT+2','2014-05-17 12:00:00') as gmt_plus_2; newzone_plus_2 | newzone_minus_2_15 | la_plus_2 | gmt_plus_2 ---------------------+---------------------+---------------------+--------------------- 2014-05-17 10:00:00 | 2014-05-17 14:15:00 | 2014-05-17 10:00:00 | 2014-05-17 10:00:00 (1 row)

下一個主題:

CURRENT_DATE

上一個主題:

AT TIME ZONE

在本頁面

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。