本人在面对 sql server函数时犹如白痴一般。所以就在网上查sql server时间函数的用法,整理,以便不时之需。

1. getdate() 返回系统当前时间,精确到毫秒三位。

  语法:gtdate() 例如: select getdate() 返回 2013-04-11 12:12:12.287

2. dateadd() 在指定日期基础上增加或减去指定的时间间隔。

  语法:dateadd(datepart,number,date)

  datepart 参数必须是合法的日期表达式---→见文章末尾。number是你想要增加或者减去的时间间隔;对于未来的时间,此数为正数,对于过去的时间,此数为负数。date,参数是合法的日期表达式。

 例如:select dateadd(mi,10,getdate())  返回 系统当前时间 加10分钟 ,读者可以自己试验

      select dateadd(mi,10,'2013-04-19')  返回 2013-04-19 00:10:00.000

      select dateadd(mi,-10,'2013-04-19')  返回 2013-04-18 23:50:00.000

      以上两个特殊之处在于:没有指定时分秒,系统默认为 00:00:00.000

      所以在增加-10分返回的是2013-04-18 23:50:00.000

      select dateadd(mi,-10,'2013-04-19 10:53:59.013') 返回: 2013-04-09 10:43:59:013


3. datepart() 返回日期/时间的单独部分;如,年、月、日、时、分等。

   语法:datepart(datepart,date)

    date:参数是合法的日期表达式。datepart 参数必须是合法的日期表达式---→见文章末尾。

  例如:select datepart(yy,'2013-04-19 10:53:59.013') 返回:2013

       select datepart(mm,'2013-04-19 10:53:59.013') 返回:4 --注意 是4 不是04

4. datediff() 返回两个日期之间的天数

   语法:datediff(datepart,startdate,enddate)

    startdate,enddate两个参数应为合法的日期表达式

    datepart 参数必须是合法的日期表达式---→见文章末尾

   例如:

     select datediff(mm,'2013-01-01','2013-04-23') 返回:3

5. convert() 此函数用于将日期转换为新数据类型的通用函数、还可以用与不同格式显示日期/时间数据。

   语法:convert(date_type(length),date_to_be_converted,style)

   date_type(length) 规定目标数据类型(带有可选的长度),date_to_be_converted含有需要转换的值,style规定日期/时间的输入格式。style 可以使用的值,见下图。

   例如:select convert(varchar(19),'2013-04-19 10:53:59.013')

         返回:04 19 2013  2:16PM  --注style不填返回默认

         select convert(varchar(10),'2013-04-19 10:53:59.013',110)

         返回:04-19-2013

   其他的读者用到的时候可以自己去试验。


datepart 可以使用的值:

year,month,day,hour,second,minute,这几个是本人测试过的英文,亦可以是文尾图中参数之一,可能有错之处,希望指出。

逗号表示或者,如:年的有yy,yyyy

dateadd(yy,10,'2013-04-19') dateadd(yyyy,10,'2013-04-19')

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns