介绍
在MSSQL中,在日期字段中存储的日期数据实际上是存储为数字的,每个数字代表一个具体的日期。因为数字可以进行计算,所以日期函数可以方便地计算日期之间的差距、以及其他日期运算。
日期表示法
MSSQL中使用数字来表示日期,其起点为1900年1月1日,即1代表1900年1月1日,2代表1900年1月2日,以此类推。当在表单中输入日期值时,会自动将其转化为MSSQL识别的数字格式存储。
-- 查看日期的数字表示方法
SELECT CONVERT(VARCHAR(20),CAST(GETDATE() AS DATE), 120) AS '日期的数字表示方法'
获取日期
获取当前日期
获取当天的日期可以使用MSSQL内置函数GETDATE()
。
-- 获取当前日期
SELECT GETDATE() AS '当前日期'
获取星期几
MSSQL中,使用内置函数DATEPART()
可以获取日期的各个部分,包括年、季度、月、日、以及星期几等。
-- 获取当前日期是星期几
SELECT DATEPART(WEEKDAY, GETDATE()) AS '今天是星期:'
当我们执行上面的代码后,可以看到当前日期是星期几,这个数字表示的意义是:
1:代表星期天
2:代表星期一
3:代表星期二
4:代表星期三
5:代表星期四
6:代表星期五
7:代表星期六
日期计算
日期加减
在MSSQL中,我们可以使用DATEADD()
函数来进行日期的加减操作,可以指定加减的单位,包括年、月、日、小时、分钟、秒、毫秒等。
-- 计算三天前的日期
SELECT DATEADD(DAY,-3, GETDATE()) AS '三天前是:'
日期差
我们可以使用DATEDIFF()
函数来计算日期之间的差距,可以指定计算的单位,包括年、月、日、小时、分钟、秒、毫秒等。
-- 计算两个日期之间的天数差
SELECT DATEDIFF(DAY,'2022-01-01', '2022-01-05') AS '两个日期之间的天数差:'
总结
MSSQL中,日期字段实际上是存储为数字的,可以方便地进行日期计算。同时,使用内置函数DATEPART()
、DATEADD()
、DATEDIFF()
等函数可以快速获取日期的各个部分以及进行日期的加减与计算操作。