sql - T-SQL 查询以获取从今天起 +30 天的日期
问题描述
数据采用日期/时间格式,我正在尝试获取从今天起 30 天内日期精确的行列表。这是基于 SQL Server 2005。
所以在 7 月 1 日,我会得到一个日期为 8 月 1 日的行列表。
示例条目将是:
1993 年 7 月 4 日,星期日 12:00
但是,由于某种原因,我的查询似乎根本没有返回任何行。
AND DATEPART("month", a.PersonBirthdate) = DATEPART("month", GetDate())
AND DATEPART("day", a.PersonBirthdate) = DATEPART("day", GetDate()+30)
例如,下面的查询部分可以很好地获取日期所在的行列表:
AND DATEPART("month", a.PersonBirthdate) = DATEPART("month", GetDate())
AND DATEPART("day", a.PersonBirthdate) = DATEPART("day", GetDate())
解决方案
要计算今天加上 30 天,Date
您可以使用:
DateAdd( day, 30, Cast( GetDate() as Date ) )
请注意,如果您尝试按DateTime
具有该日期的列检索行,您将使用:
where DateAdd( day, 30, Cast( GetDate() as Date ) ) <= DateTimeColumn and
DateTimeColumn < DateAdd( day, 31, Cast( GetDate() as Date ) )
这将包括直到第二天午夜的所有时间,但不包括。条件是SARGABLE以便它可以从索引中受益。
推荐阅读
- hash - 仅从时间戳解密哈希或创建新哈希
- python - python在列包含文本字符串时进行列计算
- java - 如何将标头值列入黑名单并仅在失败时记录响应
- python - 如何在 Python 中将 csv 数据重新网格化为更高的空间分辨率?
- nginx - 如何在 NGINX 内部重写
- android - 在 Flutter 中打开键盘时,随机大小的容器会意外调整大小
- makefile - GNU make special target 使用特殊选项执行公共目标
- ios - 升级到 Xcode 12.5 后在构建时收到关于注册通知 (Swift) 的错误
- excel - 权限被拒绝错误在 Mac 上将 Excel 图表保存为 .png
- c - 附加字符串的 C 宏