第一篇:SQL 取日期函数DATENAME和DATEPART的异同之处分析--个人笔记
SQL函数中,Datename函数与Datepart函数的异同: 语法:DATENAME(datepart , date)
和 Datepart(datepart , date)
说明:DATENAME函数获取名称,根据不同的SQL引擎版本不同而得到差异的结果;获取时间的名称,如获取周:datename(wk,date)返回的是,星期几,如Sunday,Monday等,而datepart(wk,date)则返回数值,如星期一则返回2,星期天则为1,同样的datename(datepart , date)可以获取月分,而Datepart(datepart , date)则获取月分对应值,如一月为1等。
当时间的名称值等于数值时,两个函数取得相同的值。如:datename(dy,getdaet())=datepart(dy,getdate()).以下为该两个函数的第一个参数的可取值:
取年:yy, yyyy;
取月:m,mm
取季:q,qq
取第几周:dw
取周几:wk,w
取一年中第多少日:dy
取日期中的日:day,dd
取时、分、秒:hh,mi,ss
说明:weekday(dw)日期部分返回星期几(星期天、星期一等)。
Quarter(qq)返回季度值,一年中的第几季度。
dayofyear(Dy),返回一年当中的第几天值。
例子:
在多数SQL SERVER 英文版本中(以及部分繁体版),SELECT DATENAME(month, getdate())
得到
January ;
而在简体中文版中则得到 :
01
而SELECT DATEPART(month,getdate())则在所有版本中都得到 1
相同的,在取周几的值时也有同样的情况存在。
在这些版本中,英文原版中使用DATENAME函数将得到最原本的值。