日期函数
日期内部函数用来显示有关日期和时间的信息。它们处理datetime和smalldatetime的值,并对其进行算术运算。日期函数可用在选择列表中、where子句里或任何能够使用表达式的地方。
Datetime类型的值在内部被adaptive server存贮成两个4字节的整数。第一个4字节存放基准日期(January 1, 1900)前或后的天数。基准日期是系统的参考日期。早于January 1, 1753的日期值是禁用的。另外一个4字节数存放精确到1/300秒的时间。
Smalldatetime存储的日期和时间不如datetime中的精确。Smalldatetime被存成两个2字节的整数。前2个字节存放基准日期后的天数,另外2个字节存放一天从零点开始的分钟数。日期范围是从january 1, 1900到june 6,2079年,时间精确到分钟。
函数名 | 参数 | 返回结果 |
Getdate | () | 当前的系统日期和时间 |
Datename | (datepart, date) | 以ASCII串形式给出datetime或smalldatetime指定的日期元素。 |
Datepart | (datepart,date) | 以整数形式给出datetime或smalldatetime指定的日期元素。 |
Datediff | (datepart,date) | 第2个和第1个日期元素间的差值(例如月、日、小时) |
Dateadd | (datepart,number,date) | 把一个日期部分加到另一个日期后产生的日期值 |
Datetime、datepart、datediff和dateadd都要求日期元素的年、月、小时等做为其参数。下表给出了每个日期元素、它们的缩写以及相应取值范围。Datetime函数产生相应的ASCII值,如一周里的星期几。
日期元素 | 缩写 | 值 |
Year | Yy | 1753-9999 |
Quarter | | 1-4 |
Month | MM | 1-12 |
Dayofyear | Dy | 1-366 |
Day | Dd | 1-31 |
Week | Wk | 0-51 |
Weekday | Dw | 1-7(星期日-星期六) |
Hour | Hh | 0-23 |
Minute | Mi | 0-59 |
Second | Ss | 0-59 |
Milliseond | Ms | 0-999 |
注意:weekday周天元素的值是受设置的语言影响的。
例子:
查询给定日期的月分:
select datename(mm,”1997/11/28”)
结果:november
查询给定的两个日期相差的月数:
select datediff(mm,”1997/09/09”,”1997/11/11”)
结果:
2
为给定日期再加5个月
select dateadd(mm,05,”1997/06/16”)
结果:
Nov 16 1997 12:00:00:000AM
——
Datepart函数接受下面的日期元素做为星期数:
Calweekofyear 返回星期号
Calyearofweek 返回年数
Caldayofyear 返回星期中的天数
日期元素 | 缩写 | 结果 |
Calweekofyear | Cwk | 1-52 |
Calyearofyear | Cyr | 1753-9999 |
Caldayofweek | Cdw | 1-7(在美国1是星期一) |
例如:
查询给定日期是该年中的第几个星期:
select datepart(cwk,”1997/01/31”)
结果:48
查询给定日期中年的部分:
select datepart(cyr,”1997/01/15”)
结果:1997
查询给定日期为星期几:
select datepart(cdw,”1997/11/28”)
结果:5