本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
日期和時間函數
在此節中,您可以找到 Amazon Redshift 支援的日期和時間 scalar 函數之相關資訊。
主題
- 日期和時間函數的摘要
- 交易中日期與時間函數
- 已取代的僅限領導節點函數
- + (串連) 運算子
- ADD_MONTHS 函數
- AT TIME ZONE 函數
- CONVERT_TIMEZONE 函數
- CURRENT_DATE 函數
- DATE_CMP 函數
- DATE_CMP_TIMESTAMP 函數
- DATE_CMP_TIMESTAMPTZ 函數
- DATEADD 函數
- DATEDIFF 函數
- DATE_PART 函數
- DATE_PART_YEAR 函數
- DATE_TRUNC 函數
- EXTRACT 函數
- GETDATE 函數
- INTERVAL_CMP 函數
- LAST_DAY 函數
- MONTHS_BETWEEN 函數
- NEXT_DAY 函數
- SYSDATE 函數
- TIMEOFDAY 函數
- TIMESTAMP_CMP 函數
- TIMESTAMP_CMP_DATE 函數
- TIMESTAMP_CMP_TIMESTAMPTZ 函數
- TIMESTAMPTZ_CMP 函數
- TIMESTAMPTZ_CMP_DATE 函數
- TIMESTAMPTZ_CMP_TIMESTAMP 函數
- TIMEZONE 函數
- TO_TIMESTAMP 函數
- TRUNC 函數
- 日期或時間戳記函數的日期部分
日期和時間函數的摘要
函式 | 語法 | 傳回值 |
---|---|---|
+ (串連) 運算子
將日期與 + 符號兩側的時間串連起來,並傳回 TIMESTAMP 或 TIMESTAMPTZ。 |
date + time | TIMESTAMP 或 TIMESTAMPZ |
ADD_MONTHS 將指定幾個月新增至日期或時間戳記。 |
ADD_MONTHS ({date|timestamp}, integer) | TIMESTAMP |
AT TIME ZONE 指定要透過 TIMESTAMP 或 TIMESTAMPTZ 表達式來使用哪一個時區。 |
AT TIME ZONE 'timezone' | TIMESTAMP 或 TIMESTAMPZ |
CONVERT_TIMEZONE 可將時間戳記從一個時區轉換為另一個時區。 |
CONVERT_TIMEZONE (['timezone',] 'timezone', timestamp) | TIMESTAMP |
CURRENT_DATE 傳回目前工作階段時區中的日期 (預設為 UTC) 做為目前交易的開始。 |
CURRENT_DATE | DATE |
DATE_CMP 比較兩個日期並傳回 |
DATE_CMP (date1, date2) | INTEGER |
DATE_CMP_TIMESTAMP 比較日期與時間並傳回 |
DATE_CMP_TIMESTAMP (date, timestamp) | INTEGER |
DATE_CMP_TIMESTAMPTZ 比較日期與含時區的時間戳記並傳回 |
DATE_CMP_TIMESTAMPTZ (date, timestamptz) | INTEGER |
DATE_PART_YEAR 從日期擷取年份。 |
DATE_PART_YEAR (date) | INTEGER |
DATEADD 透過指定間隔來增量日期或時間。 |
DATEADD (datepart, interval, {date|time|timetz|timestamp}) | TIMESTAMP 、TIME 或 TIMETZ |
DATEDIFF 傳回兩個日期或時間的差異,做為給定日期的部分 (例如日或月)。 |
DATEDIFF (datepart, {date|time|timetz|timestamp},
{date|time|timetz|timestamp}) |
BIGINT |
DATE_PART 從日期或時間擷取日期部分值。 |
DATE_PART (datepart, {date|timestamp}) | DOUBLE |
DATE_TRUNC 根據日期部分來截斷時間戳記。 |
DATE_TRUNC ('datepart', timestamp) | TIMESTAMP |
EXTRACT 從 timestamp、timestamptz、time 或 timetz 中擷取日期或時間部分。 |
EXTRACT (datepart FROM source) | INTEGER or DOUBLE |
GETDATE 傳回目前工作階段時區中的目前日期和時間 (預設為 UTC)。括號是必要的。 |
GETDATE() | TIMESTAMP |
INTERVAL_CMP 比較兩個間隔並傳回 |
INTERVAL_CMP (interval1, interval2) | INTEGER |
LAST_DAY 傳回某月最後一天的日期,其中包含 date。 |
LAST_DAY(date) | DATE |
MONTHS_BETWEEN 傳回兩個日期之間有幾個月。 |
MONTHS_BETWEEN (date, date) | FLOAT8 |
NEXT_DAY 傳回晚於 date 的第一個 day 執行個體的日期。 |
NEXT_DAY (date, day) | DATE |
SYSDATE 傳回日期和時間 (以 UTC 表示) 做為目前交易的開始。 |
SYSDATE | TIMESTAMP |
TIMEOFDAY 傳回目前工作階段時區中的目前工作日 (預設為 UTC) 做為字串值。 |
TIMEOFDAY() | VARCHAR |
TIMESTAMP_CMP 比較兩個時間戳記並傳回 |
TIMESTAMP_CMP (timestamp1, timestamp2) | INTEGER |
TIMESTAMP_CMP_DATE 比較時間戳記與日期並傳回 |
TIMESTAMP_CMP_DATE (timestamp, date) | INTEGER |
TIMESTAMP_CMP_TIMESTAMPTZ 比較時間戳記與含時區的時間戳記並傳回 |
TIMESTAMP_CMP_TIMESTAMPTZ (timestamp, timestamptz) | INTEGER |
TIMESTAMPTZ_CMP 比較兩個含時區的時間戳記並傳回 |
TIMESTAMPTZ_CMP (timestamptz1, timestamptz2) | INTEGER |
TIMESTAMPTZ_CMP_DATE 比較含時區的時間戳記值與日期並傳回 |
TIMESTAMPTZ_CMP_DATE (timestamptz, date) | INTEGER |
TIMESTAMPTZ_CMP_TIMESTAMP 比較含時區的時間戳記與時間戳記並傳回 |
TIMESTAMPTZ_CMP_TIMESTAMP (timestamptz, timestamp) | INTEGER |
TIMEZONE 傳回時間戳記,做為指定時區和時間戳記值。 |
TIMEZONE ('timezone' { timestamp | timestamptz ) | TIMESTAMP 或 TIMESTAMPTZ |
TO_TIMESTAMP 傳回含時區的時間戳記,做為指定時間戳記和時區格式。 |
TO_TIMESTAMP ('timestamp', 'format') | TIMESTAMPTZ |
TRUNC 截斷時間戳記並傳回日期。 |
TRUNC(timestamp) | DATE |
注意
不會將閏秒視為歷經時間的計算中。
交易中日期與時間函數
當您在交易區塊 (BEGIN … END) 中執行下列函數時,函數會傳回目前交易的開始時間,而不是目前陳述式的開始。
-
SYSDATE
-
TIMESTAMP
-
CURRENT_DATE
下列函數一律會傳回目前陳述式的開始日期或時間 (即使他們在交易區塊中)。
-
GETDATE
-
TIMEOFDAY
已取代的僅限領導節點函數
下列日期函數已棄用,因為他們僅在領導節點上執行。如需詳細資訊,請參閱 僅限領導節點函數。
-
AGE。請改用 DATEDIFF 函數。
-
CURRENT_TIME。請改用 GETDATE 函數 或 SYSDATE。
-
CURRENT_TIMESTAMP。請改用 GETDATE 函數 或 SYSDATE。
-
LOCALTIME。請改用 GETDATE 函數 或 SYSDATE。
-
LOCALTIMESTAMP。請改用 GETDATE 函數 或 SYSDATE。
-
ISFINITE
-
NOW。請改用 GETDATE 函數 或 SYSDATE。