DB

[DB][Oracle] 날짜+시간 문자열과 날짜문자열 비교하기

오선지♬ 2024. 10. 22. 22:26
728x90
반응형

오라클에서 RQ1_DT와 RQ1_TM을 날짜 형식으로 변환한 후 결합하고, CMP_REQ_DT와 동일한 형식으로 비교하기 위해 TO_DATE 함수를 사용할 수 있습니다.

  • RQ1_DT와 RQ1_TM은 각각 YYYYMMDD와 HH24MI 형식의 문자열이므로, 이를 TO_DATE로 변환하여 날짜와 시간을 포함한 형식으로 만듭니다.
  • CMP_REQ_DT는 날짜 정보만 포함하므로 이를 TO_DATE로 변환하여 일관성 있게 처리합니다.
SELECT 
    '설치' AS 분류,
    EO_RQ_TP AS 요청유형,
    CUST_CD,
    CT.CUST_NM AS 고객사,
    CR_CD,
    CR.CR_SCD AS 고객번호,
    EO_STAT_TP AS 요청상태,
    TO_DATE(RQ1_DT || RQ1_TM, 'YYYYMMDDHH24MI') AS 완료요청일  -- 날짜와 시간을 결합하여 날짜형식으로 변환
FROM T_EO 
JOIN CUSTOMER_TABLE CT ON T_EO.CUST_CD = CT.CUST_CD  -- 고객사 정보 JOIN
JOIN CUSTOMER_RELATION_TABLE CR ON T_EO.CR_CD = CR.CR_CD  -- 고객번호 정보 JOIN
WHERE RS_USER_CD = 로그인유저  -- 로그인한 유저 필터
AND RQ_DT = TO_CHAR(SYSDATE, 'YYYYMMDD')  -- 오늘 날짜 필터 (문자열 형식으로 비교)

UNION ALL

SELECT 
    '계약' AS 분류,
    CRCH_TP AS 요청유형,
    CUST_CD,
    CT.CUST_NM AS 고객사,
    CR_CD,
    CR.CR_SCD AS 고객번호,
    CRCH_CLS_TP AS 요청상태,
    TO_DATE(CMP_REQ_DT, 'YYYYMMDD') AS 완료요청일  -- 날짜만 변환
FROM T_YH_CRCH 
JOIN CUSTOMER_TABLE CT ON T_YH_CRCH.CUST_CD = CT.CUST_CD  -- 고객사 정보 JOIN
JOIN CUSTOMER_RELATION_TABLE CR ON T_YH_CRCH.CR_CD = CR.CR_CD  -- 고객번호 정보 JOIN
WHERE REQ_USER_CD = 로그인유저  -- 로그인한 유저 필터
AND RCV_DT = TO_CHAR(SYSDATE, 'YYYYMMDD')  -- 오늘 날짜 필터 (문자열 형식으로 비교)

ORDER BY 완료요청일 ASC;
728x90
반응형