【发布时间】:2020-10-06 12:30:56
【问题描述】:
我正在使用 SSMS/SSRS2012 工作报告来捕获当前财政年度的所有工作时间,为此目的是 10 月 1 日至 9 月 30 日。
我正在寻找一个包含以下内容的案例陈述: 如果当前月份 = 10 则 @FYStart = 当前年份
当我查询SELECT GETDATE() 时,格式为:2020-06-16 15:24:57.637
我尝试了以下方法,但只成功了一半。
SELECT CASE WHEN DATEPART(MONTH,(CAST(getdate() AS INT)))>09
THEN YEAR(CAST(getdate() AS INT))
ELSE DATEADD(YEAR,-1,(CAST(getdate() AS INT)))
END
这个结果给了我2019-06-17 00:00:00.000,这是朝着正确方向迈出的一步,但是如果我将月份更改为已经过去的月份,
SELECT CASE WHEN DATEPART(MONTH,(CAST(getdate() AS INT)))>03
THEN YEAR(CAST(getdate() AS INT))
ELSE DATEADD(YEAR,-1,(CAST(getdate() AS INT)))
END
我得到这个结果:1905-07-14 00:00:00.000
这里显然出了点问题,但我不确定到底是什么。我认为这与数据类型有关,但我不确定要检查什么/从哪里开始。
【问题讨论】:
标签: sql date type-conversion ssrs-2012