gpt4 book ai didi

sql - 选择某年/月内记录存在的天数

转载 作者:行者123 更新时间:2023-12-02 23:25:52 33 4
gpt4 key购买 nike

在 SQL Server 中,我有一个表,其中包含职位发布的开始日期和结束日期。用户给定一个月和一年,我需要找到该发布的给定年份/月份的开始日期和结束日期之间的天数。

因此,如果发布开始日期是 2010/11/15,结束日期是 2010/12/05那么输出应该是:

November  16 days
December 5 days
Total 21 days

我一直在用这个方法把头撞在墙上,现在还没有什么想法。

最佳答案

这可能是最简洁的答案。

declare @start datetime, @end datetime
select @start = '20101115', @end = '20101205'

select datename(month,@start+number), count(*)
from master..spt_values
where type='P'
and number between 0 and datediff(d,@start,@end)
group by datename(month,@start+number), convert(char(6),@start+number,112)
order by convert(char(6),@start+number,112)

它的工作范围可达 2048 天(7-8 年),但如果您需要,可以延长更长时间(仅根据要求 - 这看起来会更复杂)。

convert(char 部分的唯一原因是使 11 月出现在 12 月之前,并且也出现在下一年 1 月之前。

关于sql - 选择某年/月内记录存在的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764423/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com