操作日期和時間
日期和時間函數對建立一個站點是非常有用的。站點的主人往往對一個表中的數據何時被更新感興趣。通過日期和時間函數,你可以在毫秒級跟蹤一個表的改變。
返回當前日期和時間
通過函數GETDATE(),你可以獲得當前的日期和時間。例如,語句SELECT GETDATE()返回如下的結果:
……………………………..
NOV 30 1997 3:29AM
(1 row(s) affected)
顯然,如果你將來使用這個函數,你得到的日期將比這個時間晚,或者梗早。
函數GETDATE()可以用來作為DATEDIME()型字段的缺省值。這對插入記錄時保存當時的時間是有用的。例如,假設有一個表用來保存你站點上的活動日志。每當有一個訪問者訪問到你的站點時,就在表中添加一條新記錄,記下訪問者的名字,活動,和進行訪問的時間。要建立一個表,其中的記錄包含有當前的日期和時間,可以添加一個DATETIME型字段,指定其缺省值為函數GETDATE()的返回值,就象這樣:
CREATE TABLE site_log (
username VARCHAR(40),
useractivity VARCHAR(100),
entrydate DATETIME DEFAULT GETDATE())
轉換日期和時間
你也許已經注意到,在上一節的例子中,函數GETDATE()的返回值在顯示時只顯示到秒。實際上,SQL Sever內部時間可以精確到毫秒級(確切地說,可以精確到3.33毫秒)。
要得到不同格式的日期和時間,你需要使用函數CONVERT()。例如,當下面的這個語句執行時,顯示的時間將包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中數字9的使用。這個數字指明了在顯示日期和時間時使用哪種日期和時間格式。當這個語句執行時,將顯示如下的日期和時間:
…………………………………..
Nov 30 1997 3:29:55:170AM
(1 row(s) affected)
在函數CONVERT()中你可以使用許多種不同風格的日期和時間格式。表11.1顯示了所有的格式。
表11.1 日期和時間的類型
類型值 標准 輸出
0 Default 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
Default + milliseconds--mon dd yyyy
hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
12 ISO yymmdd
13 Europe Default + milliseconds--dd mon yyyy
hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)
類型0,9,