티스토리 뷰

이번에 날짜별로 검색을 하는 쿼리를 짜면서 제약조건이 정말 중요하다는 것을 알았다.


날짜별로 검색할 때 고려해야 할 것


1. 년도

2. 월

3. 날짜

4. 시간


년도 별로 검색하기

 (테이블의 데이터 컬럼의 정의에 따라 달라질 수 있음)  DATE 형태라고 가정..



2016년 ~ 2017년

=>>   201601010000 ~~ 201712310000


로 검색을 해야한다.    


'YYYYMMDDHH24MI'


은 현재 날짜의 형태를 어떻게 출력하겠냐는 것이다. 년월일시분 까지 한다는 의미이다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- 검색조건 부여 -->
<sql id="sms_status">
      <isNotEmpty property="search_year">
            <isNotEmpty property="search_month">
                  <![CDATA[AND A.REGDATE BETWEEN to_date( #search_year#||#search_month#||'010000''YYYYMMDDHH24MI' )
                          AND to_date( (SELECT TO_CHAR(LAST_DAY(#search_year#||#search_month#||'01'), 'YYYYMMDD'FROM DUAL), 'YYYYMMDDHH24MI' )+0.99999]]>
            </isNotEmpty>
            <isEmpty property="search_month">
                  <![CDATA[AND A.REGDATE BETWEEN to_date( #search_year#||'01010000''YYYYMMDDHH24MI' )
                               AND to_date( #search_year#||'12310000''YYYYMMDDHH24MI' )+0.99999]]>
            </isEmpty>
      </isNotEmpty>
</sql>
cs




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select name="search_year" id="search_year">
      <option value="" <c:if test="${searchVO.search_year == ''}">selected="selected"</c:if> >전체년도</option>
      <c:forEach begin="0" end="15" varStatus="status">
       <option value="${nowYear - status.current}" <c:if test="${searchVO.search_year == nowYear - status.current}">selected="selected"</c:if> >${nowYear - status.current}년</option>
   </c:forEach>
</select>
<select name="search_month">
      <option value="">전체월</option>
      <c:forEach begin="1" end="12" varStatus="status">
            <c:if test="${status.current < 10}">
                  <option value="0${status.current}" <c:if test="${searchVO.search_month == status.current}">selected="selected"</c:if> >${status.current}월</option>
            </c:if>
            <c:if test="${status.current >= 10}">
            <option value="${status.current}" <c:if test="${searchVO.search_month == status.current}">selected="selected"</c:if> >${status.current}월</option>
            </c:if>
  </c:forEach>
</select>
cs


'spring 스프링 > iBatis 아이바티스' 카테고리의 다른 글

[iBatis] isNotEqual 사용법  (0) 2017.07.23
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함