MSSQL查询之获取时间部分

介绍

在MSSQL查询中,经常需要从日期时间类型的字段中获取特定的时间部分,这可以通过使用不同的函数实现。本文将介绍常见的函数,用于获得时间部分,并提供相应的查询示例。

函数列表

下面是一些获取时间部分的函数的常见列表:

1. YEAR()

这个函数可以从一个日期时间值中,提取出年份。

SELECT YEAR('2021-01-01 11:22:33')

--输出: 2021

2. MONTH()

这个函数可以从一个日期时间值中,提取出月份(1到12)。

SELECT MONTH('2021-01-01 11:22:33')

--输出: 1

3. DAY()

这个函数可以从一个日期时间值中,提取出天数(1到31)。

SELECT DAY('2021-01-01 11:22:33')

--输出: 1

4. DATEPART()

这个函数可以从一个日期时间值中,提取出特定的日期部分。可以通过指定不同的参数来选择不同的部分。以下是一些示例:

提取年份:

SELECT DATEPART(year, '2021-01-01 11:22:33')

--输出: 2021

提取月份:

SELECT DATEPART(month, '2021-01-01 11:22:33')

--输出: 1

提取天数:

SELECT DATEPART(day, '2021-01-01 11:22:33')

--输出: 1

5. DATEADD()

这个函数可以将一个时间值加上指定的时间量。可以通过指定不同的参数来选择不同的时间单位。以下是一些示例:

在一个日期时间值上加上一年:

SELECT DATEADD(year, 1, '2021-01-01 11:22:33')

--输出: 2022-01-01 11:22:33

在一个日期时间值上加上一个月:

SELECT DATEADD(month, 1, '2021-01-01 11:22:33')

--输出: 2021-02-01 11:22:33

在一个日期时间值上加上一天:

SELECT DATEADD(day, 1, '2021-01-01 11:22:33')

--输出: 2021-01-02 11:22:33

6. DATEDIFF()

这个函数可以计算两个日期之间的差异,可以指定不同的参数来选择不同的时间单位。以下是一些示例:

计算两个日期之间相差的天数:

SELECT DATEDIFF(day, '2021-01-01 11:22:33', '2021-01-05 11:22:33')

--输出: 4

计算两个日期之间相差的小时数:

SELECT DATEDIFF(hour, '2021-01-01 11:22:33', '2021-01-02 11:22:33')

--输出: 24

总结

在MSSQL查询中,可以使用YEAR()、MONTH()、DAY()、DATEPART()、DATEADD()、DATEDIFF()等函数来获取日期时间值的特定部分,或计算两个日期时间之间的差异。这些函数都是十分有用的,能够大大提升查询效率。

数据库标签