2013-06-28 7 views
0

어이 녀석 나는 주어진 2 달 사이에 개월을 포함하는 달 목록을 원합니다. 예를 들면 나는 1 월에서 6 월까지 달을 준다. 그럼 나는 그들 사이의 모든 달을 얻을 수 있어야합니다. 리피터 헤더에서 그 달을 사용하고 싶습니다. 당신은 내가 그 사이에 한 달 번호, 달이 2주어진 달 2 달 사이에 달을 얻는 방법

+0

왜 SQL을 사용합니까? 대신 코드에서 코드를 실행하고 2에서 5까지 반복하십시오. –

답변

0

제공하기 위해 여러 행 사이의 각을 얻으려면 지금 달 번호를 얻을 것이다 위의 코드를 통해 나에게 쿼리

select month(str_to_date('January','%M')); -- 1 
select month(str_to_date('June','%M')); -- 6 

를 말할 수 달 당신은 같은 것을 할 수 있습니다 : - 달을 가정 한 것입니다

SELECT MONTH(STR_TO_DATE('January','%M')) + Sub1.aMonth 
FROM (SELECT 0 AS aMonth UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12) Sub1 
WHERE MONTH(STR_TO_DATE('January','%M')) + Sub1.aMonth <= MONTH(STR_TO_DATE('June','%M')) 

이를 추가 할 수 개월 아마도 이름 쉬운 당신에게 제공하기 위해 같은 해에 다음 (이 경우 1 일 2013 1 월) 시작 날짜 개월의 수 개월 수는 MONTHNAME를 사용 : -

SELECT MONTHNAME(DATE_ADD('2013-01-01', INTERVAL Sub1.aMonth MONTH)) 
FROM (SELECT 0 AS aMonth UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12) Sub1 
WHERE MONTH(STR_TO_DATE('January','%M')) + Sub1.aMonth <= MONTH(STR_TO_DATE('June','%M')) 
+0

코드가 작동하지만 달 번호 대신 출력으로 월 이름을 사용할 수 있습니까? – user2527367

+0

제안 사항이 추가되었습니다. – Kickstart

+0

고마워요. 건배!! :) – user2527367

0

당신은 (사이 테이블 (var_first_month)에서 (당신이 원하는)를 선택하여 시도 할 수 second_month). 도움이되는 희망.

0

달이 같은 해에있는 경우이

SELECT month(str_to_date(`your_date_column`,'%M')) as my_month 
    FROM `your_table` 
    WHERE month(str_to_date(`your_date_column`,'%M')) BETWEEN month(str_to_date('January','%M')) 
          AND month(str_to_date('June','%M')) 
+0

안녕하세요, 숫자가 아닌 테이블에 월 이름이 있습니다. 그리고 출력으로 월 이름을 원합니다. 조회가 잘 보이지만 표에서 월 이름을 얻을 수 있도록 조회를 변경할 수 있습니까? – user2527367

+0

업데이트 된 답변보기 –

0

, 나는이 같은 쿼리가 필요하다고 생각하려고 :

SELECT 
    DATE_FORMAT(STR_TO_DATE(months.m, '%m'), '%M') 
FROM 
    (SELECT 1 m UNION ALL SELECT 2 UNION ALL SELECT 3 
    UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 
    UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 
    UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12) months 
WHERE 
    months.m > month(str_to_date('January','%M')) 
    AND months.m < month(str_to_date('June','%M')); 

here 바이올린을 참조하십시오. 그러나 상황에 따라 코드로 달 이름을 얻는 것이 더 쉬울 수도 있습니다 (예 : PHP 또는 다른 스크립트 사용) ...