mysql 질문입니다. 정보
mysql 질문입니다.본문
고수님들 부탁드립니다..^^
어느 한 테이블에서 기간 설정(예, 2009년 10월 1일 ~ 2010년 10월 15일)을 하여 데이타를 추출할려고 합니다.
날짜가 한 필드로 되어있으면 쉽겠는데...
문제는 날짜가 세 필드로 되어있는 겁니다.
예를 들어 test 라는 테이블에 year는 m_year, month는 m_month, day는 m_day 이런식입니다.
이러한 경우 2009년 10월 1일 ~ 2010년 10월 15일까지 데이타를 추출하는 sql문을 어떻게 써야할지
고수님들께 부탁드립니다....
어느 한 테이블에서 기간 설정(예, 2009년 10월 1일 ~ 2010년 10월 15일)을 하여 데이타를 추출할려고 합니다.
날짜가 한 필드로 되어있으면 쉽겠는데...
문제는 날짜가 세 필드로 되어있는 겁니다.
예를 들어 test 라는 테이블에 year는 m_year, month는 m_month, day는 m_day 이런식입니다.
이러한 경우 2009년 10월 1일 ~ 2010년 10월 15일까지 데이타를 추출하는 sql문을 어떻게 써야할지
고수님들께 부탁드립니다....
댓글 전체
select * from test where
year in ('2009', '2010')
and (year <> '2009' OR month in ('10', '11', '12'))
and (year <> '2010' OR month not in ('11', '12'))
and (year <> '2010' OR month <> '10' OR day in ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'));
이렇게 하시면 됩니다 ㅎㅎ
다른 방법으로는 CONCAT 함수로 m_year, m_month, m_day를 붙여서 검색해도 되구요.
참고로 위에껀 인덱스를 타지만 concat함수를 쓰면 안탑니다.
year in ('2009', '2010')
and (year <> '2009' OR month in ('10', '11', '12'))
and (year <> '2010' OR month not in ('11', '12'))
and (year <> '2010' OR month <> '10' OR day in ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'));
이렇게 하시면 됩니다 ㅎㅎ
다른 방법으로는 CONCAT 함수로 m_year, m_month, m_day를 붙여서 검색해도 되구요.
참고로 위에껀 인덱스를 타지만 concat함수를 쓰면 안탑니다.
답변 감사드립니다...
조금더 간략한 방법은 없는지요?
기간 설정하는 날짜를 변수를 받아와서 해야 하거든요...
고수님의 답변 부탁드립니다.^^
조금더 간략한 방법은 없는지요?
기간 설정하는 날짜를 변수를 받아와서 해야 하거든요...
고수님의 답변 부탁드립니다.^^
날짜가 정확히 어떻게 들어가는지를 모르겠네요.
1월이면 01로 들어가는지 1로 들어가는지...
01로 들어간다는 가정하에 말씀드릴게요. (1로 들어가면 좀더 복잡해 집니다.)
select * from test where concat(year, month, day) >= '20091001' and concat(year, month, day) <= '20101015';
1월이면 01로 들어가는지 1로 들어가는지...
01로 들어간다는 가정하에 말씀드릴게요. (1로 들어가면 좀더 복잡해 집니다.)
select * from test where concat(year, month, day) >= '20091001' and concat(year, month, day) <= '20101015';
정말로 감사드립니다..^^
고수님 덕분에...한방에 해결되었네요....
행복한 주말보내세요...
감사합니다.
고수님 덕분에...한방에 해결되었네요....
행복한 주말보내세요...
감사합니다.