日期函数
日期内部函数用来显示有关日期和时间的信息。它们处理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