2013-05-21 2 views
1

내가 레코드가 생성 된 달에 따라 연도 값을 선택하려고에 월을 기준으로 날짜를 검색 : 달이 4 월 이후 인 경우 월이 1 월 이후이다MySQL을

경우를, 작년 을 얻어야한다 나는

SELECT IF ((MONTH(Application.created) > 3), (YEAR(Application.created)), (YEAR(Application.created, INTERVAL -1 YEAR))) FROM Table 

답변

2

당신은 단지 1을 뺄 수 있습니다 올해 가야 연도 값에서 (더 interval은 필요 없음). 나는 모든 괄호 :)에서 길을 잃지 않았기 때문에 또한, 나는 CASE을 사용

SELECT 
    CASE WHEN MONTH(Application.created) > 3 THEN YEAR(Application.created) 
     ELSE YEAR(Application.created) - 1 
    END 
FROM Table 

편집 :

SELECT IF ((MONTH(Application.created) > 3), (YEAR(Application.created)), (YEAR(Application.created) - 1)) FROM Table 
+0

은'IF' 문에 실제로 붙어하지만 당신은 나에게 단지 뺀 아이디어를 준' 1' –

+0

실제 'IF'를 추가했습니다 –

+1

문제가 없습니다! 그리고 감사합니다 - IF 버전을 사용하면 대답이 향상됩니다. –