我有一个返回日期的查询。例如2013-10-12。
我想检查日期是在一年的6月1日和一年的最后一天之间。
如果是在这些日期之间,则将年份增加1,否则将年份保留原样。
所以,以上面的例子2013-10-12
为例,我想要的结果是2014年。
如果是2013-01-12
我想要的结果是2013年。
我希望这是有道理的。
答案 0 :(得分:1)
Declare @Yourdate datetime = '2013-10-13'
SELECT CASE WHEN
(@Yourdate between '2013-06-01' and DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1) )
THEN YEAR(@Yourdate) + 1 ELSE (YEAR(@Yourdate) ) END AS [YEAR]
答案 1 :(得分:1)
declare @arg datetime
set @arg = '01/12/2013'
select
case when month(@arg) > 5 then year(@arg) + 1 else year(@arg) end
答案 2 :(得分:1)
declare @var varchar(20) = '2013-01-12';
select case when Month(convert(datetime,@var ,120)) > 5 then Year(convert(datetime,@var ,120)) + 1 else Year(convert(datetime,@var ,120)) end