程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MS SQL datepart,datename

MS SQL datepart,datename

編輯:關於SqlServer

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) 日期部分返回星期幾(星期天、星期一等)。

是返回 datetimesmalldatetime 值或日期格式字符串的表達式。對 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       

0          0        0     0       2     2  
      c          0         0        2           0       0     0       0     2  
      d          0         0        0          1        0     0       0     1  
  Total       1         1        2          1        1     0       2     8  

下面分別演示 :

 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

date)=3   and   city=a.city)   as   wed,  
  (select   count(*)   from   c     where   datepart(dw,date)=4   and   city=a.city)   as   thr,  
  (select   count(*)   from   c     where   datepart(dw,date)=5   and   city=a.city)   as   fri,  
  (select   count(*)   from   c     where   datepart(dw,date)=6   and   city=a.city)   as   sat,  
  (select   count(*)   from   c     where   datepart(dw,date)=7   and   city=a.city)   as   sun     from   c   a  
  union   all  
  select   distinct   'total'   as   [city\day],  
  (select   count(*)   from   c   where   datepart(dw,date)=1   )   as   mon,  
  (select   count(*)   from   c   where   datepart(dw,date)=2   )   as   tue,  
  (select   count(*)   from   c   where   datepart(dw,date)=3   )   as   wed,  
  (select   count(*)   from   c   where   datepart(dw,date)=4   )   as   thr,  
  (select   count(*)   from   c   where   datepart(dw,date)=5   )   as   fri,  
  (select   count(*)   from   c   where   datepart(dw,date)=6   )   as   sat,

  
  (select   count(*)   from   c   where   datepart(dw,date)=7   )   as   sun   from   c   b

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  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved