(1) 获取当前系统日期、时间
select getdate()
(2) dateadd() 在向指定日期加上一段时间的基础上,返回新的 datetime 值;
为了将某个时间字段更新到前一天,举例如下:
UPDATE ProduceTasks set BuildTime=DATEADD(day,-1,BuildTime)
如果将某个时间字段更新到下个月,举例如下:
UPDATE ProduceTasks set BuildTime=DATEADD(MONTH,1,BuildTime)
(3) datediff 返回跨两个指定日期的日期和时间边界数;
如果要计算两个日期、时间的跨度,举例如下:
select datediff(day,'2008-11-18','2013-01-01') --输入结果为1505,表示相差1505天
select datediff(YEAR,'2008-11-18','2013-01-01')--输入结果为5,表示相差5年
(4) datepart 返回代表指定日期的指定日期部分的整数,当然day(),year(),month()与其类似
如果要获得某个详细时间的年、月、日,举例如下:
select DATEPART(YEAR,'2013-01-11') --输出结果为2013
(5) datename 返回代表指定日期的指定日期部分的字符串
select datename(weekday, '2013-01-11') --输出结果为星期五
本部分只介绍常见的几种转换方式,用到的函数就是:CONVERT
select CONVERT(varchar, getdate(), 120 ) --输出‘2013-01-10 11:30:00’
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --输出20130110113040
select CONVERT(varchar(12) , getdate(), 111 ) --输出2013/01/10
select CONVERT(varchar(12) , getdate(), 112 ) --输出20130110
select CONVERT(varchar(12) , getdate(), 102 ) --输出2013.01.10
前面对函数的解释利用了简单的实例,SQL手册中关于这些函数的定义如下表所示: