本文僅列出常用函數,將於其他文章中進行分析與比較。
#
|
功能
|
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.
下一個週幾
沒有留言:
張貼留言