SQL 日期函数相关

时间:2022-08-03 06:30:57
  DATEPART  
  返回代表指定日期的指定日期部分的整数。  
   
  语法  
  DATEPART   (   datepart   ,   date   )    
   
  参数  
  datepart  
   
  是指定应返回的日期部分的参数。下表列出了   Microsoft®   SQL   Server™   识别的日期部分和缩写。  
   
  日期部分   缩写    
  year   yy,   yyyy    
  quarter   qq,   q    
  month   mm,   m    
  dayofyear   dy,   y    
  day   dd,   d    
  week   wk,   ww    
  weekday   dw    
  Hour   hh    
  minute   mi,   n    
  second   ss,   s    
  millisecond   ms    
   
   
  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  
   
  注释  
  DAY、MONTH、和   YEAR   函数分别是   DATEPART(dd,   date)、DATEPART(mm,   date)、和   DATEPART(yy,   date)   的同义词。  
   
  示例  
  GETDATE   函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示   GETDATE   及   DATEPART   的输出。  
   
  SELECT   GETDATE()   AS   'Current   Date'  
  GO  
   
  下面是结果集:  
   
  Current   Date                                  
  ---------------------------    
  Feb   18   1998   11:46PM                    
   
  SELECT   DATEPART(month,   GETDATE())   AS   'Month   Number'  
  GO  
   
  下面是结果集:  
   
  Month   Number    
  ------------    
  2                          
   
  此示例假设日期是   5   月   29   日。  
   
  SELECT   DATEPART(month,   GETDATE())  
  GO  
   
  下面是结果集:  
   
  -----------    
  5                        
   
  (1   row(s)   affected)  
   
  在此示例中,以数字表示日期。注意:SQL   Server   将   0   解释为   01/01/1900。    
   
  SELECT   DATEPART(m,   0),   DATEPART(d,   0),   DATEPART(yy,   0)  
   
  下面是结果集:  
   
  -----   ------   ------  
  1           1             1900  
   
 

2 楼 直接用应用程序中的函数如在PB中是  
  nteger   day_nbr  
  day_nbr   =   DayNumber(1990-01-31)  
  返回是星期四  
 

3 楼 datepart(week,getdate())返回在一年中的第几周。  
  datepart(weekday,getdate())返回的是一个星期中的第几天。星期天为第1天。

4 楼 最好加上   SET   DATEFIRST   1   因为中国人一周的第一天是星期一。
5 楼 举个例子   如:select   datepart(week,'20020902')  
                            set   datefirst   1  
  结果集为:  
  ----------  
  36