日期函数
接着来说sql中的常用函数,本节主要说一下日期函数在sql语句中的使用。
1.DateAdd ( I , N , D )
将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
Day of yeary Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7
Weekday Dw w 周,一年中的第几周 0 ~ 51//sql server 下不可用,不知道怎么回事
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。
例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。
2.Day( 日期的字符串或表达式 )、Month(日期的字符串或表达式)、Year(日期的字符串或表达式)
传回日期的「日」、「月」、「年」部份。
例子: Day(" 12/1/1999 ")
结果: 1
例子: Month(" 12/1/1999 ")
结果: 12
例子: Year(" 12/1/1999 ")
结果: 1999
3.DateDiff (I , D1 , D2[,FW[,FY]])
计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7
Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
4. datepart(I,D) 返回代表指定日期的指定部分的整数。I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7
Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒
D:指定日期。例如:SELECT DATEPART(m, '2004-10-15') --返回 10
5.DateName(I,D):返回代表指定日期的指定部分的字符串(请注意与datepart的区别)。I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
Day of year Dy y 一年的日数,一年中的第几日 1-366
w Weekday 一周的日数,一周中的第几日 1-7
Weekday Dw w 周,一年中的第几周 0 ~ 51
h Hour 时
n Minute 分
s Second 秒
D:指定日期。例如:select datename(w,getdate()) --返回 '星期一',再举一例,注意datepart和datename的区别:
select datepart(m,getdate()) --返回 '7' (数值7)
select datename(month,getdate()) --返回 '07 (字符串07)