介绍
在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()等函数来获取日期时间值的特定部分,或计算两个日期时间之间的差异。这些函数都是十分有用的,能够大大提升查询效率。