Teradata 基本介紹 (7)

基本介紹

教學目標

初步了解 Teradata 中的系統日曆 (Calendar)。

重點概念

SQL 針對日期運算比較複題,所以 Teradata 系統提供 1900 年至 2100 年的日曆資料表 (Sys_calendar.Calendar),提供查詢應用,其中更包括各種相關的統計資訊,如下表所示。

名稱 類型 說明
calendar_date DATE UNIQUE 標準 Teradata 日期。
day_of_week BYTEINT 星期幾,1 ~ 7,1 => 星期日。
day_of_month BYTEINT 本月中第幾號,1 ~ 31。
day_of_year SMALLINT 本年中的第幾天,1 ~ 366。
day_of_calendar INTEGER 從 1990/01/01 開始至今的天數。
weekday_of_month BYTEINT 本月中該星期出現的次數。
week_of_month BYTEINT 本月中第幾周,其中以星期日至星期六為一周,0 代表不完整的周。
week_of_year BYTEINT 本年中第幾周,0 ~ 53,0 代表不完整的周。
week_of_calendar INTEGER 本日曆中第幾周,0 ~ N,0 代表不完整的周。
month_of_quarter BYTEINT 本季中第幾月,1 ~ 3。
month_of_year BYTEINT 本年中第幾月,1 ~ 12。
month_of_calendar INTEGER 本日曆中第幾月,從 1900 年 1 月起。
quarter_of_year BYTEINT 本年中第幾季。
quarter_of_calendar INTEGER 本日曆中第幾季,從 1900 年 1 月起。
year_of_calendar SMALLINT 本日曆中第幾年,從 1900 年起。

日曆表範例

取得今天的相關日期資訊。

SQL 語法

1
2
3
SELECT *
FROM Sys_calendar.Calendar
WHERE calendar_date = CURRENT_DATE;

(註: CURRENT_DATE 是 ANSI SQL 標準。)

執行結果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
calendar_date: 98/09/21
day_of_week: 2
day_of_month: 21
day_of_year: 264
day_of_calendar: 36058
weekday_of_month: 3
week_of_month: 3
week_of_year: 38
week_of_calendar: 5151
month_of_quarter: 3
month_of_year: 9
month_of_calendar: 1185
quarter_of_year: 3
quarter_of_calendar: 395
year_of_calendar: 1998

相關資源