如果day对应月份,则返回1



我用SQL制作了一个日历字段"is_mtd_alles"在日历中返回当前月份中截至并包括今天的天数。这在上表中是正确的,只是缺少日期1-1-2020。

看例子

这段代码决定它是0还是1:

`[is_mtd_all]  AS (case when datepart(dayofyear,[Date])<=datepart(dayofyear,getdate()) AND datepart(month,[Date])=datepart(month,getdate()) then (1) else (0) end),`

我创建了一个名为date_calendar的表,其中datetime字段名为calendar_date,并在其中填充了从2020到2050的每个日期。

然后执行以下查询,我相信你正在请求:

select
calendar_date,
case 
when datepart(day,calendar_date) <= datepart(day,getdate()) 
and datepart(month,calendar_date) = datepart(month,getdate())
then 1 else 0
end as is_mtd_alles
from date_calendar

我认为你的代码的问题是它使用dayofyear而不是day和2020年是闰年,所以有不同的天数。

如果这在您的表上不起作用,我们可能需要查看表模式和具有预期结果的示例数据,以便能够进一步帮助您。

相关内容

  • 没有找到相关文章

最新更新