日期列中有数据,例如:
'2014-03-01', '2014-05-01', '2014-07-01' ...
我想通过 IF 子句获得不同的年份。
例如,如果日期在 'YEAR-07-01' ~ '(YEAR+1)-06-30' 之间,则返回 YEAR,否则返回 YEAR-1。
例如,如果日期列的数据如下:
'2000-06-01', '2000-07-01', '2005-07-01', '2005-08-01', '2008-07-01'
我想要获取“1999”、“2000”、“2005”、“2008”
我在想
SELECT (
IF t.DATE IN YEAR(t.DATE) + '-07-01' AND YEAR(t.DATE)+1 + '-06-30'
THEN YEAR(t.DATE) ELSE YEAR(t.DATE)+1 )
FROM THE_TABLE t WHERE PRIMARY_KEY = 123;
但是我不知道如何在SQL Server中正确编写它。
最佳答案
在我看来,您正在根据 6/30 结束、7/1 开始的财政年度进行计算。
试试这个:
select distinct
case when Month(t.DATE) >=7 then Year(t.DATE) else Year(t.DATE)-1 end as FiscalYear
from THE_TABLE t
order by FiscalYear desc
关于sql - 使用子句 IF 和 IN 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616736/