T-SQL时间函数

20190831


时间函数

DAY(),MONTH(),YEAR(),DATEADD(),DATEDIFF(),DATENAME(),DATEPART(),GETDATE()

DAY()、MONTH()、YEAR()

  • 语法
DAY(date) --,返回类型为int
MONTH(date) --返回类型为int
YEAR(date) --返回类型为int

--date: T-sql时间类型具体值
  • 示例
SELECT DAY('2007-04-30T01:01:01.1234567 -07:00');
SELECT DAY('2017-04-02');

SELECT MONTH('2007-04-30T01:01:01.1234567 -07:00');
SELECT MONTH('2017-11-02');

SELECT YEAR('2007-04-30T01:01:01.1234567 -07:00');
SELECT YEAR('2017-11-02');
30 
2
4
11
2004
2017

DATEADD()、DATEDIFF()、DATENAME()、DATEPART()、GETDATE()

  • 语法
DATEADD(datepart, number, date) --返回指定日期date加上指定的额外日期间隔number产生的新日期,返回类型与参数date相同
DATEDIFF(datepart, startdate, enddate ) --返回两个指定日期在datepart方面的差值,返回类型int
DATENAME(datepart, date) --以字符串的形式返回日期的指定部分,返回类型nvarchar 
DATEPART(datepart, date) --以整数值的形式返回日期的指定部分,返回类型int
GETDATE() --函数以DATETIME的缺省格式返回系统当前的日期和时间,返回类型datetime

-- datepart: 时间类型
-- number: int型参数
参数datepart好多种,常用:
year, yyyy, yy --1年
quarter, qq, q --2季度
month, mm, m --3月
dayofyear, dy, y --4一年中的第几天
day, dd, d  --5日期
week, wk, ww --6第几周
weekday, dw --7周几
  • 示例
declare @date_time1 date, @date_time2 datetime
set @date_time1 = '2019-08-31'
set @date_time2 = '2019-06-20'
select DATEADD(year, 3, @date_time1) --1
select DATEADD(year, 3, @date_time2) --2
select DATEDIFF(month, @date_time1,@date_time2 )--3
select DATENAME(day, @date_time1)--4
select DATEPART(week, @date_time1) --5
select GETDATE() --6
20
2022-08-31
2022-06-20 00:00:00.000
-2
31
35
2019-08-31 20:07:00.503

备注

参考资料
T-SQL时间函数
T-SQL之常用函数
SQL Server 帮助文档

posted on 2019-10-15 08:57  呼呼小睡  阅读(282)  评论(0编辑  收藏  举报