본문 바로가기

STUDY/DB

[Oracle] 달력 테이블

SELECT A.DD AS SOLAR,
       substr(DD, 7) AS days,
       substr(DD, 5, 2) AS months,
       substr(DD, 1, 4) AS years,
       DECODE(B.공휴일자, NULL, '0', '1') AS HOLYGUBN
  FROM
       (SELECT TO_CHAR(TO_DATE('201309'||TO_CHAR(ROWNUM), 'yyyymmdd'), 'yyyymmdd') AS DD
         FROM 공휴일
        WHERE ROWNUM <= 31
              AND ROWNUM > 0
              AND TO_CHAR(LAST_DAY(TO_DATE('201309'||'01', 'yyyymmdd')), 'dd') >= LTRIM(TO_CHAR(ROWNUM, '00'))
       ) A,
       공휴일 B
 WHERE TO_date(A.DD,'yyyy-mm-dd') =B.공휴일자(+);

 

-- 공휴일 테이블 따로 추가로 만들어서 조인시키면 휴일 설정도 가능한 테이블

 

 달력 jsp 소스

 

<form name="tc_frm" method="post" action="<%=cp%>/ui/cnbrsv/th_Cal.jsp">

 <input type="hidden" name="year" value="<%=year%>" />
 <input type="hidden" name="month" value="<%=month%>" /> 
 
 <input type="hidden" name="preval" value="0"/>
 <input type="hidden" name="nextval" value="3"/>

 <table id="calend" border=1>
  <tr height="20" class="tabletop">
   <td onclick="predate()"><font size="4">◀</font></td>
   <td colspan="5"> <%=year%>년 &nbsp;&nbsp; <%=month%>월</td>
   <td onclick="nextdate()"><font size="4">▶</font></td>
  </tr>
  <tr height="20">
   <td width="15%" class="weeks">일</td>
   <td width="14%" class="weeks">월</td>
   <td width="14%" class="weeks">화</td>
   <td width="14%" class="weeks">수</td>
   <td width="14%" class="weeks">목</td>
   <td width="14%" class="weeks">금</td>
   <td width="15%" class="weeks">토</td>
  </tr>
  <tr>
<%  
  int newLine = 0;
  for(int i=0 ; i<dayofweek-1 ; i++){
   newLine++;
%>
  <td>&nbsp;</td>
<%  }%>
  
<%  for(int i=0; i<thHlist.size();i++){
   newLine++;   
   vo = (ThHelperVO)thHlist.get(i);
%>
  <td onclick="calClick('<%=vo.getYears()%>-<%=vo.getMonths()%>-<%=vo.getDays()%>')"><%=Integer.parseInt(vo.getDays())%></td>
<%
   if(newLine == 7){
    newLine = 0;
%>
  </tr><tr>
<%  
   }
  }
%>
 
 </table>
</form>  

'STUDY > DB' 카테고리의 다른 글

[Oracle] 기본 함수  (0) 2016.08.30
DB Instance Connect error  (0) 2016.08.30