mysql 질문입니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

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문을 어떻게 써야할지
고수님들께 부탁드립니다....

댓글 전체

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함수를 쓰면 안탑니다.
답변 감사드립니다...
조금더 간략한 방법은 없는지요?
기간 설정하는 날짜를 변수를 받아와서 해야 하거든요...
고수님의 답변 부탁드립니다.^^
날짜가 정확히 어떻게 들어가는지를 모르겠네요.

1월이면 01로 들어가는지 1로 들어가는지...

01로 들어간다는 가정하에 말씀드릴게요. (1로 들어가면 좀더 복잡해 집니다.)

select * from test where concat(year, month, day) >= '20091001' and concat(year, month, day) <= '20101015';
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT