2014-05-09 2 views
0

날짜를 반환하는 쿼리가 있습니다. 예 : 2013-10-12.날짜가 올해 5 월의 시작과 내년 5 월말 사이인지 확인하십시오.

날짜가 6 월 1 일에서 1 월 중 마지막 날인지 확인하고 싶습니다.

이 날짜 사이에있는 경우 1을 1 씩 늘리거나 그대로 두십시오. 그것이 내가 원하는 결과가 2013 년

나는이 말이 희망입니다 2013-01-12 인 경우

그래서, 2013-10-12 위의 예제를 가지고 내가 원하는 결과는 2014 년 입니다.

+0

당신은 날짜를 복용하고이 속한 금융되는 해 운동의 몇 가지 방법을 꽤 로터리 방식으로, 요구하고 있는가? 그렇다면 귀하의 회계 연도가 실제로 실행될 때 제목과 본문 사이를 명확히 할 수 있습니까? 5 월 또는 6 월입니까? –

답변

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
declare @arg datetime 
set @arg = '01/12/2013' 

select 
case when month(@arg) > 5 then year(@arg) + 1 else year(@arg) end 
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 
관련 문제