SQL中常见的时间函数

前言

在处理SQL中的时间字段时,很多初学者都忽略了SQL 自带的日期时间函数,本文大致介绍常用的日期时间函数以及时间格式的转换问题。

1. 日期时间函数

(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') --输出结果为星期五

2. 时间日期格式转换

本部分只介绍常见的几种转换方式,用到的函数就是: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

3.汇总说明

前面对函数的解释利用了简单的实例,SQL手册中关于这些函数的定义如下表所示:

你可能感兴趣的:(DataBase,sql,SQL,Sql,时间函数)