SQL Server如何查询忽略年份、生产日期为当前日期加14天的记录
SQL Server 忽略年份匹配指定月日的生产日期查询方案
直接通过比对日期的月份、日份数值实现,跳过年份维度的判断,符合仅匹配月日的需求:
基础查询(无特殊场景兼容)
SELECT * FROM 你的实际表名 WHERE MONTH(u_dateofmanufacture) = MONTH(DATEADD(DAY, 14, GETDATE())) AND DAY(u_dateofmanufacture) = DAY(DATEADD(DAY, 14, GETDATE()))
逻辑说明
- 用
DATEADD(DAY, 14, GETDATE()计算得到当前日期加14天后的目标日期 - 分别提取目标日期和
u_dateofmanufacture字段的月份、日份做等值匹配,完全忽略年份影响
兼容闰年2月29日版本
如果需要覆盖目标日期为2月29日的特殊场景,当年份无2月29日时默认匹配2月28日的记录,可以使用以下写法:
DECLARE @target_month INT, @target_day INT SELECT @target_month = MONTH(DATEADD(DAY, 14, GETDATE())), @target_day = DAY(DATEADD(DAY, 14, GETDATE())) SELECT * FROM 你的实际表名 WHERE MONTH(u_dateofmanufacture) = @target_month AND ( DAY(u_dateofmanufacture) = @target_day OR ( @target_month = 2 AND @target_day = 29 AND DAY(u_dateofmanufacture) = 28 AND ISDATE(CAST(YEAR(u_dateofmanufacture) AS VARCHAR) + '-02-29') = 0 ) )
内容的提问来源于stack exchange,提问作者XXXX
相关产品推荐
相关产品推荐

