首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较sql server中警报系统的日期和月份

比较sql server中警报系统的日期和月份
EN

Stack Overflow用户
提问于 2013-08-23 06:29:04
回答 2查看 1.3K关注 0票数 1

我有一张有两栏生日和周年纪念的桌子。我想得到有关生日和周年纪念日之间7天的时间,但不应该包括年份(显然,如果我包括年份,它将永远少于当前日期)。我想提前7天收到警报。

也就是说,查询应该将生日和周年纪念日与当前日期进行比较,并返回一个列表,如果它们的生日或周年纪念日在同一个月的7天之间,那么它就会提前提醒我即将到来的生日和周年纪念日。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-23 06:42:55

减去从现在到请求日期的年差,然后使用datediff计算结果与请求日期之间的日期差异。

代码语言:javascript
复制
SELECT *
FROM   Table
WHERE  DATEDIFF(dd,DATEADD(yyyy,-DATEDIFF(yyyy,Birthday,GETDATE()),GETDATE()),Birthday) BETWEEN 0 AND 7
       OR DATEDIFF(dd,DATEADD(yyyy,-DATEDIFF(yyyy,Anniversary,GETDATE()),GETDATE()),Anniversary) BETWEEN 0 AND 7
票数 1
EN

Stack Overflow用户

发布于 2013-08-23 06:39:38

尝尝这个

代码语言:javascript
复制
  SELECT Name,max(Table .birthdate) 
    FROM  Table group by Table .Name having (datediff(day,max(birthdate),getutcdate())>7 and datediff(day,max(birthdate),getutcdate())<8)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18396237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档