gpt4 book ai didi

SQL Server 2005,从出生日期计算即将到来的生日

转载 作者:行者123 更新时间:2023-12-04 17:13:18 25 4
gpt4 key购买 nike

这个问题已经困扰了我一段时间了。最近在回顾几年前我为客户编写的一些代码时,我想知道是否有更优雅的解决方案。

客户存储所有客户信息,包括出生日期(日期时间字段)

他们每周一运行提取,检索生日将在下一周内的任何客户。

IE。如果提取在 1 月 1 日星期一运行,则将检索生日介于(并包括)1 月 8 日星期一 -> 1 月 14 日星期日之间的客户。

我的解决方案是使用 Datepart(dy) 函数并根据转换为一年中某天的客户出生日期计算所有即将到来的生日,添加一些逻辑以包含在年底运行的数据提取。
问题是,如果客户出生在闰年和/或提取在 2 月 29 日之后的闰年运行,​​则使用年中的日期会将结果推迟 1 天,因此我不得不再次添加更多逻辑所以程序返回了预期的结果。

对于应该是一个简单的任务来说,这似乎太过分了
为简单起见,假设表“customer”包含 4 个字段,名字、姓氏、dob 和地址。

关于如何简化这一点的任何建议将不胜感激

韦斯

最佳答案

这样的事情对你有用吗?

select * from Customers c 
where dateadd(year, 1900-year(dob), dob)
between dateadd(year, 1900-year(getdate()), getdate())
and dateadd(year, 1900-year(getdate()), getdate())+7

关于SQL Server 2005,从出生日期计算即将到来的生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3751782/

25 4 0