2013年8月29日 星期四

日期函數

本文僅列出常用函數,將於其他文章中進行分析與比較。
#
功能
SQL SERVER
ORACLE
說明
1
系統時間
GETDATE()
SYSDATE
取得系統時間
2
日期加減運算
(日期提前延後)
DATEADD
+/-
ADD_MONTHS
S: DATEADD提供各種日期格式的加減運算。
O: ADD_MONTHS為月
3
兩日期的差距
(時間差)
DATEDIFF
DATEDIFF_BIG
-
MONTHS_BETWEEN
取得兩個日期的差距。
O: 通常可將日期直接相減(-)即可,月份差則可使用MONTHS_BETWEEN
4
部分日期資訊
(格式轉換)
DATENAME DATEPART
DAY
MONTH
YEAR
FORMAT (2012)
EXTRACT
取得日期型態中之年、月、日等部分日期資訊
MSSQL2012所提供FORMAT函數支援類似C#格式化功能。
5
日期截斷
(格式轉換)
CONVERT
CAST
ROUND
TRUNC
指定截斷格式將捨去所指定日期單位以下資訊
6
月底日期
EOMONTH (2012)
LAST_DAY
取得指定日期的月底日期
7
N/A
NEXT_DAY
取得下一個週幾』的日期
常用於期貨轉倉日計算或非標準週合計使用
8
日期比較
N/A
GREATEST
LEAST
可用於多個日期比較使用
LEAST(d1., d2, .. dn)取得最早(小)日期GREATEST最晚 ()日期

1.           格式轉換函數
資料庫
 函數
語法
ORACLE
TO_CHAR(date [, 'format' [, nls_language]])
MSSQL2012
FORMAT (date, 'format' [, culture ] )
MSSQL
CONVERT

MSSQL2012提供相當簡便/彈性的FORMAT函數,可藉由指定格式化字串及CULTURE幾乎可滿足大部份需求,強建議採用,可參考[2012] 格式化函數FORMAT介紹》所述。ORACLE則可使用TO_CHAR函數,一樣藉由指定格式化字串及nls_language即可,可參考格式轉換函數(日期/文字)

2.         下一個週幾
常應用於期貨轉倉日計算(台指期為每月第三個週三:三週三),或者半導體因四二輪作業及撰寫檢討週報所需以切週五早上0700為切點,以上兩種需求可參考取得下一個週五的日期

沒有留言:

張貼留言