s

mysql 질문입니다.

· 2010-10-15 (금) 14:29:39 · 1727 · 4
고수님들 부탁드립니다..^^

어느 한 테이블에서 기간 설정(예, 2009년 10월 1일 ~ 2010년 10월 15일)을 하여 데이타를 추출할려고 합니다.
날짜가 한 필드로 되어있으면 쉽겠는데...
문제는 날짜가 세 필드로 되어있는 겁니다.
예를 들어 test 라는 테이블에 year는 m_year, month는 m_month, day는 m_day 이런식입니다.

이러한 경우 2009년 10월 1일 ~ 2010년 10월 15일까지 데이타를 추출하는 sql문을 어떻게 써야할지
고수님들께 부탁드립니다....
|

댓글 4개

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';
정말로 감사드립니다..^^
고수님 덕분에...한방에 해결되었네요....
행복한 주말보내세요...
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
10-10-16 조회 1,119
10-10-16 조회 1,495
10-10-15 조회 1,140
10-10-15 조회 1,860
10-10-15 조회 940
10-10-15 조회 6,454
10-10-15 조회 1,686
10-10-15 조회 1,482
10-10-15 조회 1,425
10-10-15 조회 956
10-10-15 조회 1,002
10-10-15 조회 1,728
10-10-15 조회 1,070
10-10-15 조회 1,727
10-10-15 조회 1,724
10-10-15 조회 1,713
10-10-15 조회 1,385
10-10-15 조회 1,909
10-10-15 조회 1,647
10-10-15 조회 4,822