格式化函數FORMAT可將日期/時間與數值以指定格式/地區設定轉換為格式字串。語法如下:
FORMAT ( value, format [, culture ]
)
|
value:(必要參數)
欲格式化之運算式。
format:(必要參數)
format 引數應為有效的 .NET Framework 格式字串。支援標準格式字串 (例如 "C" 或 "D")及日期與數值自訂字元模式 (如 "yyyy-MM-dd"),但不支援複合格式。
culture :(選擇性參數)
指定文化特性格式。如未提供 culture 引數,則會使用目前工作階段的語言。
可使用SET LANGUAGE 陳述式隱含或明確加以設定。
FORMAT格式化函數可使用標準格式字串 (例如: "D"、"C")或自訂字元模式 (如: "yyyy-MM-dd"、"###,###")將日期與數值型態以.NET格式產生格式化字串。建議可以參考C#書籍查閱如datatime.ToString("yyyy-MM-dd")或double.ToString("###,##0.##")之使用方法。
日期格式化
功能
| SQL / 結果 |
SQL
|
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') "yyyy-MM-dd"
, FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') "yyyy-MM-dd HH:mm:ss"
, FORMAT(GETDATE(), 'HH') "24H"
, FORMAT(GETDATE(), 'hh') "12h"
, FORMAT(GETDATE(), 'yyyy-MM-01') "1stDayofMonth"
, FORMAT(GETDATE(), 'd', 'en-US' ) "US(fmt)"
, FORMAT(GETDATE(), 'd', 'zh-tw' ) "TW(fmt)"
, FORMAT(GETDATE(), 'D', 'zh-tw' ) "Chinese(ZH)"
|
結果
|
數值格式化
對於數值格式化,以上所測試可發現在小數位均進行隱喻(implicit)四捨五入之運算。
l
N(number)數值格式及C(Currency)貨幣格式將一律產生小數位2位
l
G(General)一般格式視資料型態決定是否具有小數位,資料為整數則無小數位,若為浮點數則產生2位小數位。
l
自定格式模式時,小數位部分之位數依定義格式而決定並進行四捨五入,建議具小數位者其個位數格式應設應為0,當數值絕對值為小於1時,個位數部分可自動以0填補。就使用彈性而言,建議使用自定格式模式。
沒有留言:
張貼留言