Redshift 入門
Jason Myers
Principal Architect
SYSDATE 交易開始時的日期與時間-- 取得目前日期與時間
SELECT SYSDATE;
timestamp
============================
2024-01-27 20:05:55.976353
GETDATE() 陳述式開始時的日期與時間,需加括號-- 取得目前日期與時間
SELECT GETDATE();
timestamp
============================
2024-01-27 20:06:55.976353
注意僅限 leader 節點的函式!
DATEDIFF 取代 AGEGETDATE/SYSDATE 取代僅限 leader 的函式:CURRENT_TIMECURRENT_TIMESTAMPISFINITELOCALTIMELOCALTIMESTAMPNOWTRUNC 從 timestamp 傳回 date-- 依據下列 SYSDATE 取得當天日期
-- 2024-01-27 20:05:55.976353
SELECT TRUNC(SYSDATE);
2024-01-27
DATE_TRUNC('datepart', timestamp) 依指定單位(如 hour、day)截斷-- 依據下列 SYSDATE 截斷到 minute
-- 2024-01-27 20:05:55.976353
SELECT DATE_TRUNC('minute', SYSDATE);
2024-01-27 20:05:55
DATE_PART(datepart, date or timestamp) -- 依據下列 SYSDATE 取得目前月份
-- 2024-01-27 20:05:55.976353
SELECT DATE_PART(month, SYSDATE);
1
month、day、yeardayofweek、quarter、timezone-- 依據下列 SYSDATE 取得星期幾
-- 2024-01-27 20:05:55.976353
SELECT DATE_PART(dayofweek, SYSDATE);
6
DATE_CMP(date_1, date_2) 相對比較
型別專用函式
DATE_CMP_TIMESTAMPDATE_CMP_TIMESTAMPTZTIMESTAMP_CMPTIMESTAMP_CMP_TIMESTAMPTZTIMESTAMPTZ_CMP-- 依據下列 SYSDATE 比較資料表中的 5 個日期
-- 2024-01-27 20:05:55.976353
SELECT date_col,
TRUNC(SYSDATE) AS current_date,
DATE_CMP(date_col, SYSDATE)
FROM combined_history_projections
ORDER BY date_col
LIMIT 3;
date_col | current_date | date_cmp
===========|===============|==========
2024-01-26 | 2024-01-27 | -1
2024-01-27 | 2024-01-27 | 0
2024-01-28 | 2024-01-27 | 1
DATEDIFF(datepart, value_1, value_2)-- 距離第一季結束還有幾天(依據下列 SYSDATE)
-- 2024-01-27 20:05:55.976353
SELECT DATEDIFF(day,TRUNC(SYSDATE),'2024-03-31') AS days_diff;
days_diff
===========
64
DATEADD(datepart, quantity, value)quantity 可為負數以執行相減-- 對日期加上一週(依據下列 SYSDATE)
-- 2024-01-27 20:05:55.976353
SELECT TRUNC(SYSDATE) AS todays_date,
TRUNC(DATEADD(week, 1, SYSDATE)) AS next_weeks_date;
todays_date | next_weeks_date
============|==================
2024-01-27 | 2024-02-03
-- 以月份為單位對日期加上年份
SELECT DATEADD(month, 12, '2024-02-29');
2025-02-28 00:00:00
-- 以年份為單位對日期加上一年
SELECT DATEADD(year, 1, '2024-02-29');
2025-03-01 00:00:00
Redshift 入門