日期時間函數對於追蹤資料異動、記錄使用者活動、建立稽核軌跡至關重要。SQL Server 提供毫秒級精度,滿足高精度時間記錄需求。
GETDATE() 回傳目前系統日期時間,格式範例:Nov 30 1997 3:29AM。常作為 DATETIME 欄位的預設值,自動記錄資料建立時間:
CREATE TABLE site_log (
username VARCHAR(40),
useractivity VARCHAR(100),
entrydate DATETIME DEFAULT GETDATE()
)
SQL Server 內部時間精度達 3.33 毫秒,CONVERT() 可依指定樣式代碼輸出多種格式。語法:CONVERT(資料類型, 日期時間, 樣式代碼)
-- 含毫秒的完整格式(樣式 9)
SELECT CONVERT(VARCHAR(30), GETDATE(), 9)
-- 結果:Nov 30 1997 3:29:55:170AM
| 代碼 | 標準/風格 | 輸出範例 | 備註 |
|---|---|---|---|
| 0 | 預設 | mon dd yyyy hh:miAM | |
| 1 | USA | mm/dd/yy | |
| 2 | ANSI | yy.mm.dd | |
| 3 | British/French | dd/mm/yy | |
| 4 | German | dd.mm.yy | |
| 5 | Italian | dd-mm-yy | |
| 6 | - | dd mon yy | |
| 7 | - | mon dd, yy | |
| 8 | - | hh:mi:ss | 僅時間 |
| 9 | 預設+毫秒 | mon dd yyyy hh:mi:ss:mmmAM | 含毫秒 |
| 10 | USA | mm-dd-yy | |
| 11 | Japan | yy/mm/dd | |
| 12 | ISO | yymmdd | |
| 13 | Europe | dd mon yyyy hh:mi:ss:mmm(24h) | 24小時制+毫秒 |
| 14 | - | hh:mi:ss:mmm(24h) | 24小時制時間 |
技巧: 代碼 0、9、13 預設回傳四位數年份;其他代碼加 100 可顯示世紀(如 111 為 yyyy/mm/dd)。
僅需日期時間特定部分時使用,語法:DATEPART(日期部分, 日期時間值)
SELECT site_name AS 'Site Name',
DATEPART(mm, site_entrydate) AS 'Month Posted'
FROM site_directory
常用日期部分參數:yy(年)、mm(月)、dd(日)、hh(時)、mi(分)、ss(秒)、ms(毫秒)。