有人可以建议我如何计算两个日期之间的第一天的数量吗?
例如:02/01/2015
到05/05/2015
将计为4
。
答案 0 :(得分:5)
可以像这样轻松完成:
DECLARE @sd DATE = '02/02/2015', @ed DATE = '05/01/2015'
SELECT DATEDIFF(mm, @sd, @ed) + CASE WHEN DAY(@sd) = 1 THEN 1 ELSE 0 END
答案 1 :(得分:2)
如果您在某处存储了一系列日期(例如在日历表中),则可以轻松计算与day(date)
谓词匹配的日期。如果您没有任何合适的日期序列表,您可以使用递归公用表表达式来动态生成一个表格,如下所示:
declare @start date
set @start = '02/01/2015'
declare @end date
set @end = '05/05/2015'
;with dates (date) as (
select @start date
union all
select dateadd(day, 1, date) as date from dates where date < @end
)
select count(*) no_of_firsts from dates where day(date) = 1