Posted: 2005/1月/07 9:20上午 | IP記錄
|
|
|
抽取日期和時間
在許多情況下,你也許只想得到日期和時間的一部分,而不是完整的日期和時間。例如,假設你想列出你的站點目錄中每個站點被查詢的 月份。這時你不希望完整的日期和時間把網頁弄亂。為了抽取日期的特定部分,你可以使用函數DATEPART(),像這樣:
SELECT site_name 『Site Name』,
DATEPART(mm,site_entrydate) 『Month Posted』 FROM site_directory
函數DATEPART()的參數是兩個變量。第一個變量指定要抽取日期的哪一部分;第二個變量是實際的數據。在這個例子中,函數 DATEPART()抽取月份,因為mm代表月份。下面是這個SELECT 語句的輸出結果:
Site Name Month Posted
………………………………………………………………
Yahoo 2
Microsoft 5
Magicw3 5
(3 row(s) affected)
Month Posted列顯示了每個站點被查詢的月份。函數DATEPART()的返回值是一個整數。你可以用這個函數抽取日期的各個不同 部分,如表11.2所示。
表11.2 日期的各部分及其簡寫
日期部分 簡寫 值
year yy 1753--9999
quarter qq 1--4
month mm 1--12
day of year dy 1--366
day dd 1--31
week wk 1--53
weekday dw 1--7(Sunday--Saturday)
hour hh 0--23
minute mi 0--59
second ss 0--59
milisecond ms 0--999
當你需要進行日期和時間的比較時,使用函數DATEPART()返回整數是有用的。但是,上例中的查詢結果(2,5)不是十分易 讀。要以更易讀的格式得到部分的日期和時間,你可以使用函數DATENAME(),如下例所示:
SELECT site_name 『Site Name』
DATENAME(mm,site_entrydate) 『Month Posted』
FROM site_directory
函數DATENAME()和函數DATEPART()接收同樣的參數。但是,它的返回值是一個字符串,而不是一個整數。下面是上 例該用DATENAME()得到的結果:
Site Name Month Postec
………………………………………………………………….
Yahoo February
Microsoft June
Magicw3 June
(3 row(s) affected)
你也可以用函數DATENAE()來抽取一個星期中的某一天。下面的這個例子同時抽取一週中的某一天和日期中的月份:
SELECT site_name 『Site Name』,
DATENAME(dw,site_entrydate)+ 『-』 + DATENAME(mm,site_entrydate)
『Day and Month Posted』 FORM site_directory
這個例子執行時,將返回如下的結果:
Site Name Day and Month Posted
………………………………………………………………………
Yahoo Friday - February
Microsoft Tuesday - June
Magicw3 Monday - June
(3 row(s) affected)
|