![]() |
|
行事曆日期/時間函數行事曆日期/時間函數會針對日期、時間,以及時間標記,操作資料類型中的資料(時間標記資料類型是日期和時間的組合)。 所有日期函數均符合 ISO 8601。這尤其會影響 Week_Of_Year 與 Week_Of_Quarter 此類函數,其年度的初始週別為包含星期四的第一個完整週別。如需如何計算日期函數的詳細資訊,請參考 ISO 8601 標準。 Current_Date傳回目前的日期。日期是由電腦決定。此值不包含時間元件。 語法: CURRENT_DATE Current_Time傳回目前的時間。時間是由電腦決定。該值不包含日期元件。 備註:這個函數會取得此報表執行當時的時間。配合「分析」主題區域使用這個函數,可使報表不進行會降低效能的快取作業。 語法: CURRENT_TIME (n) 其中:
Current_TimeStamp傳回目前的日期/時間標記。時間標記是由電腦決定。 備註:這個函數會取得此報表執行當時的時間。配合「分析」主題區域使用這個函數,可使報表不進行會降低效能的快取作業。 語法: CURRENT_TIMESTAMP (n) 其中:
Day_Of_Quarter傳回對應到指定日期之季度那一天的數字 (介於 1 和 92 之間)。 語法: DAY_OF_QUARTER (date_expression) 其中:
DayName傳回指定日期之星期幾的名稱 (使用英文)。 語法: DAYNAME (date_expression) 其中:
DayOfMonth傳回對應到指定日期之月份那一天的數字。 語法: DAYOFMONTH (date_expression) 其中:
DayOfWeek傳回對應到指定日期之星期幾的數字 (介於 1 和 7 之間)。數字 1 會對應到星期日,而數字 7 則會對應到星期六。 語法: DAYOFWEEK (date_expression) 其中:
DayOfYear傳回對應到指定日期之年份那一天的數字 (介於 1 和 366 之間)。 語法: DAYOFYEAR (date_expression) 其中:
Hour傳回對應到指定時間之小時的數字 (介於 0 和 23 之間)。例如,0 會對應到上午 12 點,而 23 則會對應到下午 11 點。 語法: HOUR (time_expression) 其中:
Minute傳回對應到指定時間之分鐘的數字 (介於 0 和 59 之間)。 語法: MINUTE (time_expression) 其中:
Month傳回對應到指定日期之月份的數字 (介於 1 和 12 之間)。 語法: MONTH (date_expression) 其中:
Month_Of_Quarter傳回對應到指定日期之季度月份的數字 (介於 1 和 3 之間)。 語法: MONTH_OF_QUARTER (date_expression) 其中:
MonthName傳回指定日期之月份的名稱 (使用英文)。 語法: MONTHNAME (date_expression) 其中:
Now傳回目前的時間標記。NOW 函數相當於 CURRENT_TIMESTAMP 函數。 備註:這個函數會取得此報表執行當時的時間。配合「分析」主題區域使用這個函數,可使報表不進行會降低效能的快取作業。 語法: NOW () Quarter_Of_Year傳回對應到指定日期之年份季度的數字 (介於 1 和 4 之間)。 語法: QUARTER_OF_YEAR (date_expression) 其中:
Second傳回對應到指定時間之秒數的數字 (介於 0 和 59 之間)。 語法: SECOND (time_expression) 其中:
TimestampAddTimestampAdd 函數會將指定的間隔數加入到指定的時間標記。系統會傳回單一的時間標記。 語法: TimestampAdd (interval、integer_expression、timestamp_expression) 其中:
傳遞到此函數的 Null 整數運算式或 Null 時間標記運算式會導致 Null 傳回值。 在最簡單的情況下,此函數會根據間隔,僅將指定的間隔值 (integer_expression) 加入到適當的時間標記元件中。加入一週會解譯成加入七天,而加入一季會解譯成加入三個月。負整數值會導致減法 (及時返回)。 指定元件的溢位 (例如,超過 60 秒、24 小時、12 個月等等) 必須將適當的數量加入到下一個元件。例如,加入時間標記的天元件時,此函數會考慮溢位,並將特定月份的天數納入考量 (包括二月有 29 天的閏年)。 加入到時間標記的月元件時,此函數會確認所產生的時間標記對於天元件擁有足夠的天數。例如,將 1 個月加入到 2000-05-31 不會導致 2000-06-31,因為六月沒有 31 天。此函數將天元件減到該月份的最後一天,在此範例中,即為 2000-06-30。 加入到具有二月之月元件以及 29 (此即為閏年二月的最後一天) 之天元件的時間標記年元件時,會引發類似的問題。如果所產生的時間標記沒有落在閏年,此函數會將天元件減到 28。 以下是 TimestampAdd 函數的範例: 將 3 天加入到 2000-02-27 14:30:00 時,下列程式碼範例會要求所產生的時間標記。2000 年 2 月是閏年,因此,這會傳回單一時間標記 2000-03-01 14:30:00。 TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) 將 7 個月加入到 1999-07-31 0:0:0 時,下列程式碼範例會要求所產生的時間標記。這會傳回單一時間標記 2000-02-29 00:00:00。請注意,天元件會因為二月是較短的月份而減到 29。 TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) 將 25 分鐘加入到 2000-07-31 23:35:00 時,下列程式碼範例會要求所產生的時間標記。這會傳回單一時間標記 2000-08-01 00:00:00。請注意透過月元件的溢位傳播。 TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffTimestampDiff 函數會傳回兩個時間標記之間的指定間隔總數。 語法: TimestampDiff (interval、timestamp_expression1、timestamp_expression2) 其中:
傳遞到此函數的 Null 時間標記運算式參數會導致 Null 傳回值。 此函數會先判斷對應到指定間隔參數的時間標記元件。例如,SQL_TSI_DAY 會對應到天元件,而 SQL_TSI_MONTH 會對應到月元件。 接著,此函數會兩個時間標記中順序較高的元件,來計算每個時間標記的間隔總數。例如,如果指定的間隔對應到月元件,此函數會加入月元件,然後將年元件乘以 12,來計算每個時間標記的月份總數。 最後,此函數會從第二個時間標記的間隔總數減去第一個時間標記的間隔總數。 計算天數差異時,此函數會截斷來自時間標記運算式的時間值,然後減去日期值。 計算週的差異時,此函數會計算天數的差異,然後先除以 7 之後再四捨五入。 計算季的差異時,此函數會計算月的差異,然後先除以 3 之後再四捨五入。 計算年的差異時,此函數會計算月的差異,然後先除以 12 之後再四捨五入。 TimestampDiff 函數與結果範例下列程式碼範例會要求時間標記 1998-07-31 23:35:00 和 2000-04-01 14:24:00 之間的天數差異。它會傳回值 610。請注意,2000 年的閏年會導致出現額外一天。 TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_Quarter傳回對應到指定日期之季度週數的數字 (介於 1 和 13 之間)。 語法: WEEK_OF_QUARTER (date_expression) 其中:
Week_Of_Year傳回對應到指定日期之年份週數的數字 (介於 1 和 53 之間)。 語法: WEEK_OF_YEAR (date_expression) 其中:
年份傳回指定日期的年份。 語法: YEAR (date_expression) 其中:
範例: YEAR (CURRENT_DATE) |
2018年8月 | Copyright © 2005, 2018, Oracle 及/或其關係機構。版權所有. Legal Notices. |