在 SQL Server 中利用日期格式化查询不同时间范围的数据

在 SQL Server 数据库中,经常需要按照不同的时间范围检索数据。通过巧妙使用 SQL 语句,我们可以轻松地查询今天、昨天、近7天、近30天、一个月内、上一月、本年和去年的数据。以下是使用日期格式化的示例查询:

查询今天的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy-MM-dd') = FORMAT(GETDATE(), 'yyyy-MM-dd');

查询昨天的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy-MM-dd') = FORMAT(DATEADD(DAY, -1, GETDATE()), 'yyyy-MM-dd');

查询近7天的数据

sql 复制代码
SELECT * FROM your_table
WHERE YourDateColumn >= DATEADD(DAY, -6, GETDATE())
  AND YourDateColumn < DATEADD(DAY, 1, GETDATE());

查询近30天的数据

sql 复制代码
SELECT * FROM your_table
WHERE YourDateColumn >= DATEADD(DAY, -29, GETDATE())
  AND YourDateColumn < DATEADD(DAY, 1, GETDATE());

查询一个月内的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy-MM') = FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyy-MM');

查询上一月的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy-MM') = FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyy-MM');

查询本年的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy') = FORMAT(GETDATE(), 'yyyy');

查询去年的数据

sql 复制代码
SELECT * FROM your_table
WHERE FORMAT(YourDateColumn, 'yyyy') = FORMAT(DATEADD(YEAR, -1, GETDATE()), 'yyyy');

在上述查询中,我们利用了 SQL Server 的 FORMAT 函数,将日期列格式化为特定的日期字符串,以便与当前日期或其他格式化后的日期进行比较。需要注意的是,使用日期格式化来查询可能会对性能产生一定的影响,因此在大型数据集上使用时需要谨慎。通过这些查询示例,你可以根据具体需求轻松获取所需时间范围内的数据。

相关推荐
❀͜͡傀儡师1 分钟前
docker部署PostgreSQL数据库的监控和管理工具
数据库·docker·postgresql
Amy_au2 分钟前
Linux week 01
linux·运维·服务器
淮上安子骞14 分钟前
sage10.8源码部署
服务器·密码学·ctf·本地部署·sage
KingRumn18 分钟前
DBUS源码剖析之DBusMessage数据结构
linux·服务器·数据结构
a1879272183121 分钟前
MySQL 事务
数据库·mysql·事务·mvcc·acid·readview·可见性判断算法
梨落秋霜23 分钟前
Python入门篇【元组】
android·数据库·python
Caarlossss31 分钟前
mybatis
java·数据库·tomcat·maven·mybatis·mybatis-spring
OpenMiniServer41 分钟前
JsonKV协议技术文档
linux·服务器·网络
AI Echoes1 小时前
自定义 LangChain 文档加载器使用技巧
数据库·人工智能·python·langchain·prompt·agent
在风中的意志1 小时前
[数据库SQL] [leetcode] 578. 查询回答率最高的问题
数据库·sql