在 SQL Server 中,我们经常需要从数据库中检索特定时间范围内的数据。通过合理运用 SQL 语句,我们可以轻松地查询今天、昨天、近7天、近30天、一个月内、上一月、本年和去年的数据。下面是一些示例 SQL 查询,让我们逐一了解。
查询今天的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= CONVERT(DATE, GETDATE());
查询昨天的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= CONVERT(DATE, GETDATE() - 1)
AND YourDateColumn < CONVERT(DATE, GETDATE());
查询近7天的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= CONVERT(DATE, GETDATE() - 6)
AND YourDateColumn < CONVERT(DATE, GETDATE() + 1);
查询近30天的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= CONVERT(DATE, GETDATE() - 29)
AND YourDateColumn < CONVERT(DATE, GETDATE() + 1);
查询一个月内的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= DATEADD(MONTH, -1, GETDATE());
查询上一月的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1)
AND YourDateColumn < DATEFROMPARTS(YEAR(GETDATE()) + 1, 1, 1);
查询本年的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1)
AND YourDateColumn < DATEFROMPARTS(YEAR(GETDATE()) + 1, 1, 1);
查询去年的数据
sql
SELECT * FROM your_table
WHERE YourDateColumn >= DATEFROMPARTS(YEAR(GETDATE()) - 1, 1, 1)
AND YourDateColumn < DATEFROMPARTS(YEAR(GETDATE()), 1, 1);
在上述查询中,your_table 代表你的实际表名,YourDateColumn 代表包含日期信息的列名。这些查询利用 SQL Server 的日期函数和运算符来精确地过滤所需的时间范围,从而方便地检索数据库中的数据。