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,getdate())=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函数将得到最原本的值。