介绍
MSSQL是常见的关系型数据库管理系统,日期时间计算在日常开发中是比较常见的操作技巧,本文将介绍MSSQL中日期计算的技巧,并提供一些示例代码。
日期和时间类型
在MSSQL中,常见的日期和时间类型有:
DATETIME:存储日期和时间
DATE:存储日期
TIME:存储时间
DATETIMEOFFSET:存储带有时区偏移的日期和时间
SMALLDATETIME:存储日期和时间(精确到分钟)
日期计算
加减日期
在MSSQL中,可以使用DATEADD函数进行日期加减操作。DATEADD函数有三个参数:
第一个参数表示要进行加减操作的日期部分,可以是year、quarter、month、day、week、hour、minute、second或millisecond。
第二个参数表示要加减的数量,可以是正数或负数。
第三个参数表示要进行加减操作的日期时间值。
例如,要将某个日期加上10天:
DECLARE @date DATETIME = '2022-01-01'
SELECT DATEADD(day, 10, @date)
执行结果为:
2022-01-11 00:00:00.000
要将某个日期减去5个月:
DECLARE @date DATETIME = '2022-01-01'
SELECT DATEADD(month, -5, @date)
执行结果为:
2021-08-01 00:00:00.000
计算日期差
在MSSQL中,可以使用DATEDIFF函数计算日期差。DATEDIFF函数有三个参数:
第一个参数表示要计算差值的日期部分,可以是year、quarter、month、day、week、hour、minute、second或millisecond。
第二个参数表示要计算差值的起始日期时间值。
第三个参数表示要计算差值的结束日期时间值。
例如,要计算2022年1月1日到2022年2月1日之间相差的天数:
DECLARE @startDate DATETIME = '2022-01-01'
DECLARE @endDate DATETIME = '2022-02-01'
SELECT DATEDIFF(day, @startDate, @endDate)
执行结果为:
31
提取日期部分
在MSSQL中,可以使用DATEPART函数提取日期部分。DATEPART函数有两个参数:
第一个参数表示要提取的日期部分,可以是year、quarter、month、day、week、hour、minute、second或millisecond。
第二个参数表示要提取日期部分的日期时间值。
例如,要提取某个日期的年份:
DECLARE @date DATETIME = '2022-01-01'
SELECT DATEPART(year, @date)
执行结果为:
2022
总结
MSSQL中日期计算是非常常见的操作技巧,本文介绍了加减日期、计算日期差和提取日期部分三种常用的技巧,并提供了相应的示例代码。