SQL

[SQL] 시작일~종료일 사이만 나오는 조건

도미노& 2018. 8. 26. 22:15

ibatis로 작성함



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
<!-- 활동기간 검색 -->
<isNotEmpty property="startdt" >
  <isNotEmpty property="enddt" >
    AND (
      (A.WORKSTARTDT BETWEEN TO_DATE(#startdt#||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#enddt#||' 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
        AND
      (A.WORKENDDT BETWEEN TO_DATE(#startdt#||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#enddt#||' 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
    )
  </isNotEmpty>  
  <isEmpty property="enddt" >
    AND (
      (A.WORKSTARTDT BETWEEN TO_DATE(#startdt#||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('9999-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
        AND
      (A.WORKENDDT BETWEEN TO_DATE(#startdt#||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('9999-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
    )
  </isEmpty>
</isNotEmpty>
<isEmpty property="startdt">
  <isNotEmpty property="enddt" >
    AND (
      (A.WORKSTARTDT BETWEEN TO_DATE('1111-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#enddt#||' 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
        AND
      (A.WORKENDDT BETWEEN TO_DATE('1111-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#enddt#||' 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))
    )
  </isNotEmpty>
</isEmpty>
cs