我在 SQL Server 表中有几个日期跨度。
我正在尝试计算日期跨度中给定年份的日期跨度中的天数。
对于我的所有示例,我都在尝试计算日期跨度所涵盖的 2019 年的天数。
我有以下代码可以计算日期范围内的总天数,但有没有办法只计算 2019 年该日期范围内的天数?
下面的第一个日期跨度涵盖了整个 2019 年,所以我希望返回一个 365 左右的数字。
第二个日期跨度仅涵盖 2019 年的 30 天,因此我希望查询返回 30。
SELECT DATEDIFF(DAY,CAST(CAST(20160609 AS VARCHAR(30)) AS DATE), cast (CAST(20191231 AS VARCHAR(30)) AS DATE)) AS [Days]
SELECT DATEDIFF(DAY,CAST(CAST(20160609 AS VARCHAR(30)) AS DATE), cast (CAST(20190130 AS VARCHAR(30)) AS DATE)) AS [Days]
假设您的表具有 StartDate 和 EndDate 字段,您可以使用 CASE 语句计算结束日期与 01/01/2019 或范围的开始日期之间的天数差异。
db<>小提琴