本人在面对 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 |