sql: 生日赠品中的相关算法
---2013年10月9日生日,就以2012年9月1日至2013年8月31日計算 (因為係生日月份前兩個月之最後一天為結算日)DECLARE @birthday datetime,@now datetime,@stat datetime,@end datetime,@statbirthday datetime,@endbirthday datetime,@thirdbirthday datetime,
---2013年10月9日生日,,就以2012年9月1日至2013年8月31日計算 (因為係生日月份前兩個月之最後一天為結算日) DECLARE @birthday datetime,@now datetime,@stat datetime,@end datetime,@statbirthday datetime,@endbirthday datetime,@thirdbirthday datetime,@firthbirthday datetime, @year int,@month int , @day int,@str varchar(20),@total decimal set @now=getdate() set @year=Year(getdate()) set @birthday='1992-10-14' set @month=month(@birthday) set @day=day(@birthday) set @str=cast(@year as varchar(4))+'-'+cast(@month as varchar(2))+'-'+cast(@day as varchar(2)) set @birthday=cast(@str as datetime) --會員生日有效生首日起至3個月內有效 set @firthbirthday=DATEADD(mm, DATEDIFF(mm,0,@birthday), 0) --当月的第一天 set @thirdbirthday=DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+3, 0)) --上三个月最后的一天 set @statbirthday=DATEADD(mm, DATEDIFF(mm,0,@birthday)-13, 0) set @endbirthday=DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,@birthday)-1, 0)) select @statbirthday,@endbirthday,@firthbirthday,@thirdbirthday SELECT @total=ISNULL(SUM(amount),0) FROM View_birthdayVipdlyList WHERE indate>@statbirthday AND indate
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
推荐阅读
-
SQL Server中与IO相关的等待类型:IO_COMPLETION和PAGEIOLATCH_*
-
SQL中rownum和orderby的执行顺序的相关问题讲解
-
Nginx中防止SQL注入攻击的相关配置介绍
-
数据库SQL实战:获取所有部门中当前员工薪水最高的相关信息(教程)
-
从创建索引过程中内存变化来看SQL Server与MySQL的内存淘汰算法
-
息息相关的两大体系:数据中台与业务系统 阿里巴巴框架算法中间件
-
讲解Oracle数据库中的数据字典及相关SQL查询用法
-
进制中的回文数相关算法
-
SQL实战.获取所有部门中当前员工薪水最高的相关信息
-
SQL Server中与IO相关的等待类型:IO_COMPLETION和PAGEIOLATCH_*