DATEPART: 返回代表指定日期的指定日期部分的整數。
語法
DATEPART ( datepart , date )
DATENAME: 返回代表指定日期的指定日期部分的字符串。
DATENAME ( datepart , date )
datepart
是指定應返回的日期部分的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
在DATAPART中:
week (wk, ww) 日期部分反映對 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定義了 week 日期部分的開始數字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此處 xxxx 代表任一年。
weekday (dw) 日期部分返回對應於星期中的某天的數,例如:Sunday = 1、Saturday = 7。weekday 日期部分產生的數取決於 SET DATEFIRST 設定的值,此命令設定星期中的第一天。
date
是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。對 1753 年 1 月 1 日之後的日期用datetime 數據類型。更早的日期存儲為字符數據。當輸入 datetime 值時,始終將其放入引號中。因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。
如果只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049 (默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。
返回類型
int
注釋
在DATENAME中:
weekday (dw) 日期部分返回星期幾(星期天、星期一等)。
是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。對 1753 年 1 月 1 日之後的日期用datetime 數據類型。更早的日期存儲為字符數據。當輸入 datetime 值時,始終將其放入引號中。因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。
有關指定日期的更多信息,請參見 datetime 和 smalldatetime。有關時間值指定的更多信息,請參見時間格式。
如果只指定年份的最後兩位數字,則小於或等於 two digit year cutoff 配置選項的值的最後兩位數字的值所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2050(默認),則 49 被解釋為 2049,50 被解釋為 1950。為避免模糊,請使用四位數字的年份。
nvarchar
例子:表中有這樣幾個字段,id,city,date...現在要按照星期來排列數據。如下:
ID city date
1 a 2005/01/24
2 b 2005/01/23
3 b 2005/01/23
4 a 2005/01/21
5 d 2005/01/20
6 c 2005/01/19
7 c 2005/01/19
8 a 2005/01/18
排列成下面的
city\day Mon Tue Wed Thu Fri Sat Sun Total
a 1 1 0 0 1 0 0 3
b 0 0
下面分別演示 :
Create Table&nbs
p; c(id int,city varchar(2),date datetime)DATAPART:
select distinct city as [city\day],
(select count(*) from c where datepart(dw,date)=1 and city=a.city) as mon ,
(select count(*) from c where datepart(dw,date)=2 and city=a.city) as tue,
(select count(*) from c where datepart(dw
DATANAME:
select distinct city as [city\day],mon=(select count(*) from c where datename(dw,date)='星期一' and city=a.city),
tue=(select count(*) from c where datename(dw,date)='星期二' and city=a.city),
wed=(select count(*) from c where datename(dw,date)='星期三' and city=a.city),
thu=(select count(*) from c where datename(dw,date)='星期四' and city=a.city),
fri=(select count(*) from c where datename(dw,date)='星期五' and city=a.city),
sat=(select count(*) from c where datename(dw,date)='星期六' and city=a.city),
sun=(select count(*) from c where datename(dw,date)='星期七' and city=a.city),
total=(select count(*) from c where city=a.city)
from c a group by city
union all
select distinct 'Total',mon=(select count(*) from c where datename(dw,date)='星期一'),
tue=(select count(*) from c where datename(dw,date)='星期二'),
wed=(select count(*) from c where datename(dw,date)='星期三'),
thu=(select count(*) from c where datename(dw,date)='星期四'),
fri=(select count(*) from c where datename(dw,date)='星期五'),
sat=(select count(*) from c where datename(dw,date)='星期六'),
sun=(select count(*) from c where datename(dw,date)='星期七'),
total=(select count(*) from c) from c