筛选一段时间内过生日会员的方法

筛选一段时间过生日的会员,会遇到以下几个问题:

1、时间以月和日来计算

2、跨月问题

3、跨年问题

现提供一个思路,类似于黑盒与白盒的概率。

把会员的生日的“年”的部分都转成和筛选时间的“年”的部分一致,然后用“between .. and ..” 来搜索。

改变日期,T-SQL提供了两个方法,DateAddDateDiff

简单介绍下,DateAdd 通过向指定日期添加间隔,返回新的 datetime 值,DateDiff 返回跨越两个指定日期的日期和时间边界的数目。

语句可以写成:

declare   @StartDate      datetime   --起始时间
declare   @EndDate       datetime   --结束时间
select   *   from   [ table ]   where  
dateadd (yy, datediff (yy,Birthday, @StartDate ),birthday)  between   @StartDate   and   @EndDate + 1
or   dateadd (yy, datediff (yy,Birthday, @EndDate ),birthday)  between   @StartDate   and   @EndDate + 1

 

有几点说明:

1、一般性情况,起始时间不大于结束时间;

2、分别对起始时间和结束时间操作,解决了跨年的问题;

3、结束时间加1是按完整天数技术,包括时分秒。

 

 

转载于:https://www.cnblogs.com/rene1018/archive/2009/03/24/1420245.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值