반응형

오랜만에 또 개발 관련된 블로그를 적습니다.

 

현재 기준으로 저번달 첫일 , 다음달 말일을 구해서 세팅해야 되서 아래와 같이 구현하였습니다.

 

하나의 함수로 사용하기 위해 파라미터는 '현재날짜' , '이전 , 다음'을 넣어두었습니다

 

코드는 아래와 같이 사용 하면 됩니다.

 

//vDate : yyyymmdd or yyyy-mm-dd / vType : Prev(이전달) , Next(다음달)
function fnSetPrevNextDate(vDate, vType) {

    var vValue = vDate;
    var vValue_Num = vValue.replace(/[^0-9]/g, "");

    if (_fnToNull(vValue_Num) == "") {
        _fnAlertMsg("날짜를 입력 해 주세요.");
        return false;
    }

    //8자리가 아닌 경우 false
    if (vValue_Num.length != 8) {
        _fnAlertMsg("날짜를 20200101 or 2020-01-01 형식으로 입력 해 주세요.");
        return false;
    }

    var vYYYY = vValue_Num.substring(0, 4);
    var vMM = vValue_Num.substring(4, 6);
    var vDD = vValue_Num.substring(6, 8);

    var d = new Date(vMM + "/" + vDD + "/" + vYYYY);
    var monthOfYear = d.getMonth();
    
    if (vType == "Prev") {
        d.setMonth(monthOfYear - 1);
        vValue = d.getFullYear() + "-" + _pad(d.getMonth() + 1, 2) + "-" + "01";
    }
    else if (vType == "Next") {
        d.setMonth(monthOfYear + 1);
        var vDate = new Date(d.getFullYear(), d.getMonth() + 1, 0);
        vValue = vDate.getFullYear() + "-" + _pad(vDate.getMonth() + 1, 2) + "-" + _pad(vDate.getDate(), "2");
    }    

    return vValue;
}

 

//숫자 width만큼 앞에 0 붙혀주는 함수 EX) widht = 2일떄 1은 01로 찍힘
function _pad(n, width) {
    n = n + '';
    return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
}
반응형

매개변수의 숫자를 입력하면 현재 날짜에서 +몇일 후 날짜를 가져 올 수 있는 함수.

//매개변수의 숫자만큼 현재 + 입력한 날짜의 YYYY-MM-DD를 리턴 합니다.
function _fnPlusDate(date) {
    var nowDate = new Date();
    var weekDate = nowDate.getTime() + (date * 24 * 60 * 60 * 1000);
    nowDate.setTime(weekDate);

    var weekYear = nowDate.getFullYear();
    var weekMonth = nowDate.getMonth() + 1;
    var weedDay = nowDate.getDate();

    if (weekMonth < 10) { weekMonth = "0" + weekMonth; }
    if (weedDay < 10) { weedDay = "0" + weedDay; }
    var result = weekYear + "-" + weekMonth + "-" + weedDay;
    return 

 

매개변수의 숫자를 입력하면 현재 날짜에서 -몇일 전 날짜를 가져 올 수 있는 함수.

//매개변수의 숫자만큼 현재 - 입력한 날짜의 YYYY-MM-DD를 리턴 합니다.
function _fnMinusDate(date) {
    var nowDate = new Date();
    var weekDate = nowDate.getTime() - (date * 24 * 60 * 60 * 1000);
    nowDate.setTime(weekDate);

    var weekYear = nowDate.getFullYear();
    var weekMonth = nowDate.getMonth() + 1;
    var weedDay = nowDate.getDate();

    if (weekMonth < 10) { weekMonth = "0" + weekMonth; }
    if (weedDay < 10) { weedDay = "0" + weedDay; }
    var result = weekYear + "-" + weekMonth + "-" + weedDay;

    return result;
}
반응형
SELECT TO_DATE('20210408', 'YYYYMMDD')- TO_DATE('20210406', 'YYYYMMDD') FROM DUAL;



반응형

[2021.04.23]

오라클 Job을 생성하여 데이터를 주기적으로 삭제를 하기 위해서 만든 로직이였습니다.

 

/*매달 일요일 오후 10시 */

SELECT 
add_months(trunc(sysdate,'MM')+DECODE (to_char(add_months(trunc(sysdate,'MM'),1),'D'),'1','0','2','6','3','5','4','4','5','3','6','2','7','1'),1)+22/24
FROM dual


/*매주 일요일 */

SELECT 
trunc(sysdate, 'D') + 7 + 22/24
FROM dual

+ Recent posts