我正在使用ssms/ssrs2012 working on report来捕获当前会计年度(即10月1日至9月30日)的所有工作时间。
我正在寻找一个案例陈述,说明如下:如果当前月份<10(10月),那么@fystart=last year如果当前月份>=10那么@fystart=current year
当我询问 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
很明显这里出了点问题,但我不确定到底是什么。我认为这是数据类型的问题,但我不确定要检查什么/从哪里开始。
2条答案
按热度按时间mpbci0fu1#
因此,从我收集的信息来看,您正在尝试将年份(作为整数)与今天的日期隔离开来,并将其存储在
@FYStart
. 如果今天的日期在10月之前,则要将其指定给去年,如果是10月或更晚,则将其指定给今年,对吗?如果是,请尝试以下操作:
c3frrgcw2#
除非我忽略了一些事情,它不只是像。。。