TO_CHAR 

TO_CHAR함수는 DATE형, NUMBER형을 VARCHAR2형으로 바꺼 줍니다.  

SQL>SELECT TO_CHAR(SYSDATE, 'MONTH') CHARTEST FROM dual ; 

       CHARTEST 
 -------------- 
             JUNE 

오늘이 6월 25일 이니깐요.. 오늘의 달인 6월이 찍힘니다.

SQL>SELECT TO_CHAR(SYSDATE) CHARTEST FROM dual ; 

       CHARTEST 
 -------------- 
          21/06/25

오늘이 6월 25일 이니깐요.. 오늘의 날짜가 문자형으로 찍힙니다. 
 


TO_DATE 

TO_DATE함수는 CHARVARCHAR2형을 DATE 타입으로 변환합니다. 
 
 SQL>SELECT TO_DATE('2021/06/25','RRRR/MM/DD') FROM dual ; 

       TO_DATE( 
   ------------  
      2021/06/25  

'2021/06/25'문자열이 날짜형으로 변합니다
 


TO_NUMBER 

TO_NUMBER함수는 CHARVARCHAR2의 데이터 타입을 숫자형식으로 변환합니다. 
 
 SQL>SELECT TO_NUMBER('1210616') FROM dual ; 

    TO_NUMBER( 
    -------------- 
             1210616 
 
'1210616'문자열이 숫자형으로 변합니다
 
Conversion Functions
  

블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,

Oracle 10g부터는 휴지통 기능이 있습니다.

앞으로 지우실때는 다음 과 같이 지우시면 됩니다.

DROP TABLE 테이블명 CASCADE CONSTRAINTS PURGE


그리고 휴지통에 있는 정보는 DROP 명령어로는 지울수가 없고

휴지통 비우기 명령어로 지우셔야합니다.

PURGE RECYCLEBIN;


참고로 휴지통에 있는 테이블 복원하는 명령어는 다음과 같습니다.
FLASHBACK TABLE 테이블명 TO BEFORE DROP

블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,

[JAVA] 휴일 알아내기

JAVA 2021. 6. 25. 13:41

package workingDay.check;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import com.ibm.icu.util.ChineseCalendar;

public class workingDayCheck {

public static void main(String args[]){
System.out.println("# START #");

int chkDayInt = checkDateStr("20130209");
System.out.println(chkDayInt);
chkDayInt = checkDateStr("20130210");
System.out.println(chkDayInt);
chkDayInt = checkDateStr("20130211");
System.out.println(chkDayInt);
chkDayInt = checkDateStr("20130313");
System.out.println(chkDayInt);

System.out.println("# END #");
}


private static int checkDateStr(String chkStr){

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
int chkDay = 9;
Date chkDate = null;
try {
chkDate = sdf.parse(chkStr);

} catch (ParseException e) {
e.printStackTrace();
System.out.println("ParseException !");
}


/**
법정공휴일
1월 1일 (신정)
2월 9일 (구정 휴일)
2월 10일 (구정) (음력 1월 1일)
2월 11일 (구정 휴일)
3월 1일 (3.1절)
5월 5일 (어린이 날)
5월 17일 (석자탄실일) (음력 4월 8일)
6월 6일 (현충일)
8월 15일 (광복절)
9월 18일 (추석)
9월 19일 (추석) (음력 8월 15일)
9월 20일 (추석)
10월 3일 (개천절)
10월 9일 (한글날)
12월 25일 (크리스마스)
**/
ArrayList chkArray = new ArrayList();
/*양력 법정공휴일*/
chkArray.add("0101");
chkArray.add("0301");
chkArray.add("0505");
chkArray.add("0606");
chkArray.add("0606");
chkArray.add("0815");
chkArray.add("1003");
chkArray.add("1009");
chkArray.add("1225");

String restChkStr = chkStr.substring(4);
for(String chkTemp : chkArray){
if(restChkStr.equals(chkTemp)){
System.out.println("법정공휴일 " + chkTemp);
return 0;
}
}

/*음력 법정공휴일 : 구정, 추석*/
restChkStr = chkStr;
String lunarStr = toLunar(restChkStr);

if(lunarStr.substring(4).equals("0101")){
System.out.println("법정공휴일 구정");
return 0;
}else if(lunarStr.substring(4).equals("0815")){
System.out.println("법정공휴일 추석");
return 0;
}else if(lunarStr.substring(4).equals("0408")){
System.out.println("법정공휴일 추석");
return 0;
}

lunarStr = toLunar(sdf.format((new Date(chkDate.getTime() - 24*60*60*1000))));

if(lunarStr.substring(4).equals("0101")){
System.out.println("법정공휴일 구정 +1");
return 0;
}else if(lunarStr.substring(4).equals("0815")){
System.out.println("법정공휴일 추석 +1");
return 0;
}

lunarStr = toLunar(sdf.format((new Date(chkDate.getTime() + 24*60*60*1000))));

if(lunarStr.substring(4).equals("0101")){
System.out.println("법정공휴일 구정 -1");
return 0;
}else if(lunarStr.substring(4).equals("0815")){
System.out.println("법정공휴일 추석 -1");
return 0;
}


if(chkDate != null){
chkDay = chkDate.getDay();

System.out.println("(0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday)");
System.out.println(chkDay);

/* (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday) */
if(chkDay == 0 || chkDay == 6){
System.out.println("주말");
return 1;
}else{
System.out.println("평일");
return 9;
}
}else{
System.out.println("평일");
return 9;
}

}

public static String toLunar( String yyyymmdd ) {
        if(    yyyymmdd == null )
                return "" ;

        Calendar cal ;
        ChineseCalendar cc ;

        // default TimeZone, Locale 을 사용..
        cal = Calendar.getInstance() ;
        cc = new ChineseCalendar();

        String date = yyyymmdd.trim() ;
        if( date.length() != 8 ) {
                if( date.length() == 4 )
                        date = date + "0101" ;
                else if( date.length() == 6 )
                        date = date + "01" ;
                else if( date.length() > 8 )
                        date = date.substring(0,8) ;
                else
                        return "" ;
        }

        cal.set( Calendar.YEAR, Integer.parseInt(date.substring(0,4)) ) ;
        cal.set( Calendar.MONTH, Integer.parseInt(date.substring(4,6))-1 ) ;
        cal.set( Calendar.DAY_OF_MONTH, Integer.parseInt(date.substring(6)) ) ;

        cc.setTimeInMillis( cal.getTimeInMillis() ) ;

        // ChinessCalendar.YEAR 는 1~60 까지의 값만 가지고 ,

        // ChinessCalendar.EXTENDED_YEAR 는 Calendar.YEAR 값과 2637 만큼의 차이를 가집니다.
        int y = cc.get(ChineseCalendar.EXTENDED_YEAR)-2637 ;
        int m = cc.get(ChineseCalendar.MONTH)+1 ;
        int d = cc.get(ChineseCalendar.DAY_OF_MONTH) ;

        StringBuffer ret = new StringBuffer() ;
        if( y < 1000 )          ret.append( "0" ) ;
        else if( y < 100 )      ret.append( "00" ) ;
        else if( y < 10 )       ret.append( "000" ) ;
        ret.append( y ) ;

        if( m < 10 ) ret.append( "0" ) ;
        ret.append( m ) ;

        if( d < 10 ) ret.append( "0" ) ;
        ret.append( d ) ;

        return ret.toString() ;
}

public static String fromLunar( String yyyymmdd )
    {

        Calendar cal ;
        ChineseCalendar cc ;

        // default TimeZone, Locale 을 사용..
        cal = Calendar.getInstance() ;
        cc = new ChineseCalendar();
        
        if (yyyymmdd == null ) return "" ;

        String date = yyyymmdd.trim() ;

        if( date.length() != 8 ) {
                if( date.length() == 4 )
                        date = date + "0101" ;
                else if( date.length() == 6 )
                        date = date + "01" ;
                else if( date.length() > 8 )
                        date = date.substring(0,8) ;
                else
                        return "" ;
        }

        cc.set( ChineseCalendar.EXTENDED_YEAR, Integer.parseInt(date.substring(0,4))+2637 ) ;
        cc.set( ChineseCalendar.MONTH, Integer.parseInt(date.substring(4,6))-1 ) ;
        cc.set( ChineseCalendar.DAY_OF_MONTH, Integer.parseInt(date.substring(6)) ) ;

        cal.setTimeInMillis( cc.getTimeInMillis() ) ;

        int y = cal.get(Calendar.YEAR) ;
        int m = cal.get(Calendar.MONTH)+1 ;
        int d = cal.get(Calendar.DAY_OF_MONTH) ;

        StringBuffer ret = new StringBuffer() ;
        if( y < 1000 )          ret.append( "0" ) ;
        else if( y < 100 )      ret.append( "00" ) ;
        else if( y < 10 )       ret.append( "000" ) ;
        ret.append( y ) ;

        if( m < 10 ) ret.append( "0" );
        ret.append( m ) ;

        if( d < 10 ) ret.append( "0" );
        ret.append( d ) ;

        return ret.toString() ;
}
}

'JAVA' 카테고리의 다른 글

[JAVA] PathVariable  (0) 2022.05.23
[JAVA] Object Array  (0) 2022.05.23
multipart/form-data 인지 체크, MultipartRequestWrapper 상속해서 수정  (2) 2019.04.09
multipart 파일체크  (4) 2019.04.09
multipart 파라미터 받기  (0) 2019.02.28
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,