날짜 사이 간격 문의드려요 0 6 1,191

by 달콤꼬야 [2018.02.23 16:59:13]


 

날짜 두개를 비교해서 1년 이상이면 Y, 아니면 N으로 표시하려고 하는데 최대한 ANSI 표준에 맞게 짜려고 합니다.

지금은 CASE WHEN TO_DATE(FM.DT_END) - (TO_DATE(FM.DT_ENTRY)+(INTERVAL '1' YEAR)) >= 0 THEN 'Y' ELSE 'N' END AS YN_TARGET

이렿게 짰구요ㅠㅠㅠ

MSSQL이나 기타 DB에서 돌아갈수 있도록 바꿀 수 있을까요?

 

by 우리집아찌 [2018.02.23 17:08:55]

DATE 함수가 MS-SQL 이랑 오라클이랑 상이합니다.

DATE TYPE이 아니라 CHAR 타입이시면 TEXT형태로 비교해야할것 같은데요.

그런데 SUBSTR도 함수가 틀리네요.  SUBSTR->SUBSTRING

 

 


by 달콤꼬야 [2018.03.20 16:39:09]

답변 감사드려요ㅎㅎ


by 마농 [2018.02.23 17:26:50]
SELECT dt_entry
     , dt_end
     , CASE WHEN CAST(dt_entry AS DATE) + INTERVAL '1' YEAR
              <= CAST(dt_end   AS DATE)
            THEN 'Y' ELSE 'N' END AS yn_target
  FROM fm
;

 


by 마농 [2018.02.23 17:43:26]

Oracle, PostgreSQL, MariaDB 에서 정상 동작 확인 했습니다.
MSSQL 에서는 Interval 이 안먹네요.
MSSQL : DATEADD(year, 1, CAST(dt_entry AS DATE))


by 우리집아찌 [2018.02.23 18:43:32]

아.. CAST 가 있었군요...


by 달콤꼬야 [2018.03.20 16:39:00]

답변 정말 감사합니다!!ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입