DB

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

오선지♬ 2024. 10. 23. 20:15
728x90
반응형
SELECT 
    '설치' AS 분류,
    EO_RQ_TP AS 요청유형,
    CUST_CD,
    CT.CUST_NM AS 고객사,
    CR_CD,
    CR.CR_SCD AS 고객번호,
    EO_STAT_TP AS 요청상태,
    STR_TO_DATE(CONCAT(RQ1_DT, RQ1_TM), '%Y%m%d%H%i') 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 = DATE_FORMAT(NOW(), '%Y%m%d')  -- 오늘 날짜 필터 (문자열 형식으로 비교)

UNION ALL

SELECT 
    '계약' AS 분류,
    CRCH_TP AS 요청유형,
    CUST_CD,
    CT.CUST_NM AS 고객사,
    CR_CD,
    CR.CR_SCD AS 고객번호,
    CRCH_CLS_TP AS 요청상태,
    STR_TO_DATE(CMP_REQ_DT, '%Y%m%d') 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 = DATE_FORMAT(NOW(), '%Y%m%d')  -- 오늘 날짜 필터 (문자열 형식으로 비교)

ORDER BY 완료요청일 ASC;
  1. 날짜와 시간 변환:
    • STR_TO_DATE(CONCAT(RQ1_DT, RQ1_TM), '%Y%m%d%H%i'): RQ1_DT와 RQ1_TM을 결합한 후 STR_TO_DATE로 변환하여 완료요청일로 사용합니다.
    • STR_TO_DATE(CMP_REQ_DT, '%Y%m%d'): CMP_REQ_DT를 STR_TO_DATE로 변환하여 완료요청일로 지정합니다.
  2. 날짜 필터 조건:
    • DATE_FORMAT(NOW(), '%Y%m%d')를 사용해 오늘 날짜를 YYYYMMDD 형식의 문자열로 변환하여 RQ_DT와 RCV_DT와 비교합니다.

이 쿼리는 MySQL에서 완료요청일을 기준으로 데이터를 오름차순 정렬하여 출력합니다.

 

STR_TO_DATE로 문자열을 날짜데이터로 변환하여 정렬해준다.

728x90
반응형