1. 前言
日期是数据库中经常使用的数据类型,尤其是在报表统计和数据查询中。MSSQL提供了丰富的日期相关函数和操作,可以轻松查询出所需要的数据。本文将介绍一些日期查询技巧,帮助大家更好的掌握MSSQL的日期处理。
2. 日期类型
2.1 datetime
datetime数据类型用于存储日期和时间,在MSSQL中存储精度为1/300秒。其格式为YYYY-MM-DD HH:MI:SS,其中YYYY表示年份,MM表示月份,DD表示天数,HH表示小时(24小时制),MI表示分钟,SS表示秒。
CREATE TABLE tbl (
[id] INT PRIMARY KEY,
[date] DATETIME
);
insert语句:
INSERT INTO tbl ([id], [date])
VALUES (1, '2022-01-01 08:30:00');
2.2 date
date数据类型只存储日期部分,不存储时间部分。其格式为YYYY-MM-DD。
CREATE TABLE tbl (
[id] INT PRIMARY KEY,
[date] DATE
);
insert语句:
INSERT INTO tbl ([id], [date])
VALUES (1, '2022-01-01');
3. 日期函数
3.1 GETDATE()
GETDATE()函数用于获取当前日期和时间。
SELECT GETDATE();
3.2 DATEADD()
DATEADD()函数用于在一个指定的日期加上指定的时间间隔,返回新的日期值。
SELECT DATEADD(day, 1, '2022-01-01');
/* 输出2022-01-02 */
其中,第一个参数指定时间间隔的类型,第二个参数指定时间间隔的值,第三个参数指定起始日期。
3.3 DATEDIFF()
DATEDIFF()函数用于计算两个日期之间的时间间隔。
SELECT DATEDIFF(day, '2022-01-01', '2022-01-03');
/* 输出2 */
其中,第一个参数指定时间间隔的类型,第二个和第三个参数分别为起始日期和结束日期。
3.4 DATEPART()
DATEPART()函数用于提取日期的各个部分。
SELECT DATEPART(year, '2022-01-01');
/* 输出2022 */
其中,第一个参数指定需要提取的日期部分,例如year、month、day等。
4. 日期查询
4.1 根据日期范围查询
可以使用WHERE关键字和>=、<=运算符根据日期范围进行查询。
SELECT *
FROM tbl
WHERE [date] >= '2022-01-01' AND [date] <= '2022-01-31';
4.2 根据星期查询
可以使用DATEPART()函数和WEEKDAY参数来获取日期对应的星期几。
SELECT *
FROM tbl
WHERE DATEPART(weekday, [date]) = 1;
/* 查询星期日的数据 */
4.3 根据月份查询
可以使用DATEPART()函数和MONTH参数来获取日期对应的月份。
SELECT *
FROM tbl
WHERE DATEPART(month, [date]) = 1;
/* 查询1月份的数据 */
4.4 根据年份查询
可以使用DATEPART()函数和YEAR参数来获取日期对应的年份。
SELECT *
FROM tbl
WHERE DATEPART(year, [date]) = 2022;
/* 查询2022年的数据 */
5. 总结
本文介绍了MSSQL中日期类型、日期函数和日期查询的相关知识,包括datetime、date、GETDATE()、DATEADD()、DATEDIFF()和DATEPART()等,同时也介绍了根据日期范围、星期、月份和年份进行查询的方法,帮助大家更好的掌握MSSQL的日期处理技巧。