posted by 지긋이 2021. 1. 22. 17:35

[SQL]
select cast('202101'+'31' as date) as 원하는달마지막날표기
,dateadd(month,5,cast('202101'+'31' as date)) as 원하는달5개월후마지막날표기
,left(REPLACE(dateadd(month,5,cast('202101'+'31' as date)),'-',''),6) as 원하는달5개월후년월표기기호생략

[view]
2021-01-31 원하는달마지막날표기 
2021-06-30 원하는달5개월후마지막날표기 
202106      원하는달5개월후년월표기기호생략

 

posted by 지긋이 2020. 1. 14. 16:02

오늘 기준일이 2020.02.17일이라고 할 때

var _today1 = new Date();
var _today2 = new Date();
var firDay, lasDay;

_today1 = new Date(_today1.getFullYear(), _today1.getMonth()-5,1); //6개월전(해당월 포함)

firDay = dayFormatChk(_today1, 1); //6개월전 Format 변경
lasDay = dayFormatChk(_today2, 2); //sysdate 말일

$("#sFromYmd").val(firDay);
$("#sToYmd").val(lasDay);

console.log("todayFormat::"+firDay+"\n"+lasDay);
=> 출력

todayFormat::2019-09-01
2020-02-29

function dayFormatChk(_today, type){
var day;
if(type==1){//현재 6개월 전 구하기
day = _today.getFullYear()+"-"+("0"+(_today.getMonth()+1)).slice(-2)+"-"
+("0"+(_today.getDate())).slice(-2); 

}else if(type==2){ //현재 말일 구하기
day = new Date(_today.getFullYear(), _today.getMonth()+1,0);

day = _today.getFullYear()+"-"+("0"+(day.getMonth()+1)).slice(-2)+"-"
+("0"+(day.getDate())).slice(-2);
}
return day;

}

posted by 지긋이 2019. 12. 2. 15:12

생각보다 빈번하게 사용하는 거라 정리 한번.

1. 문자 -> 날짜(타입바꾸기)로 변경
calcu_formatChk(reqYmd);

function calcu_formatChk(ymd){ //형식이 yyyymmdd일 경우 . 만약 하이픈(-)이 포함되어 있다면 변환작업 후 진행(3번)
        var yyyy = ymd.substr(0,4); 
        var mm = ymd.substr(4,2); 
        var dd = ymd.substr(6,2);                         
         
      calcu_ymd = new Date(yyyy, mm-1, dd); 
       //console.log(ymd +"|결과 : " + calcu_ymd + "/n 월Chk : " + (calcu_ymd.getMonth()+1)); 
       return calcu_ymd; 
    }

2. 날짜 차이 구하기
getDayFromToCalDay(dt1, dt2);

function getDayFromToCalDay(dt1, dt2) { //Date 타입 혹은 YYYYMMDD로 들어왔을 때
        var diffDate_1 = dt1 instanceof Date ? dt1 :new Date(dt1);  //Test 필요(Date가 아닐 때 1번으로 연결하면 될 듯)
        var diffDate_2 = dt2 instanceof Date ? dt2 :new Date(dt2);  //Test 필요(Date가 아닐 때 1번으로 연결하면 될 듯)
                 
        var calDay = Math.abs(diffDate_2.getTime() - diffDate_1.getTime()); //시간으로 계산
        calDay = Math.ceil(calDay / (1000 * 3600 * 24)); //날짜로 변환
        //console.log(dt1+"|"+dt2+"\n날짜비교>>"+diffDate_1+"|"+diffDate_2+"||"+calDay); 
        return calDay
    }

3. 하이픈 포함된 날짜 하이픈 제거해서 반환
formatDate(searchApplYmd,"-");

// 날짜 포맷을 적용한다.. 
    function formatDate(strDate, saper) { 
        if(strDate == "" || strDate == null) { 
            return ""; 
        } 

        try { 
            if(strDate.length == 10) { //YYYY-MM-DD
                return strDate.substring(0,4)+saper+strDate.substring(5,7)+saper+strDate.substring(8,10); 
            } else if(strDate.length == 8) { 
                return strDate.substring(0,4)+saper+strDate.substring(4,6)+saper+strDate.substring(6,8); 
            } else { 
                return ""; 
            } 
        } catch(e) { 
            return ""; 
        } 
    }