Q&A

  • SQL에서 날짜 계산
SQL에서 날짜 계산 하고 싶은데요. 어떻게 해야 할지 모르겠습니다.

월데이터를 변수로 입력하고 몇개월 후 또는 몇개월 전의 월데이터를 받는것니다.

만약 '@변수' 변수에 '200808' 을 입력 받고요
12개월 후의 년월 데이터 '200908'를 출력
또는 6개월 전의 년월 데이터 '200902'를 출력
하는 방법 있으면 알려주세요

@변수 : '200808'
12개월 후 : '200908'
6개월 전 : '200802'
3  COMMENTS
  • Profile
    최용일 2008.08.13 23:41
    SQL에서보다는 그냥 계산해서 SQL로 넘기세요...


    var
    InputDateStr, PrevDateStr, PostDateStr: string;
    InputDate, PrevDate, PostDate: TDateTime;
    begin
    InputDateStr:= '200808';
    InputDate := EncodeDate( IntToStr(Copy(InputDateStr, 1, 4)), IntToStr(Copy(InputDateStr, 5, 2)), 1);

    // 12개월 후
    PostDate := IncMonth(InputDate, 12);
    PostDateStr := FormatDateTime('yyyymm', InputDate); // PostDateStr = 200908

    // 6개월 전
    PostDate := IncMonth(InputDate, -6
    PostDateStr := FormatDateTime('yyyymm', InputDate); // PostDateStr = 200802
    end;
  • Profile
    공성환 2008.08.13 23:46
    오라클10G에서 했는데... 요런넘이 있었네요...
    SELECT TO_CHAR(ADD_MONTHS( to_date('200808','yyyymm'), - 6),'YYYYMM') AS 전,
    TO_CHAR(ADD_MONTHS( to_date('200808','yyyymm'), +12),'YYYYMM') AS 후
    FROM DUAL
  • Profile
    최용일 2008.08.14 00:19
    오... ADD_MONTHS란 함수도 있군요...
    Thanks!!