SQL

[SQL] ORACLE, MySQL 월배치 쿼리 (문자열 컬럼 참조시)

서리/Seori 2025. 3. 20. 10:10

 

 

DATE 타입 컬럼이 아닌 특정 문자열 컬럼을 기준으로 배치를 돌려야 할 때!

 

 

 

ORACLE


- TABLENAME 테이블의 DATE_COLUMN 이라는 VARCHAR(4) 컬럼을 기준으로 월배치를 수행할 경우

( DATE_COLUMN 의 값은 '202503' 형태 )

 

 

SELECT *
FROM SCHEMA.TABLENAME
WHERE DATE_COLUMN = TO_CHAR(ADD_MONTH(SYSDATE, -1), 'YYYYMM');

 

 

- TABLENAME 테이블의 DATE_COLUMN 이라는 VARCHAR(8) 컬럼을 기준으로 월배치를 수행할 경우

( DATE_COLUMN 의 값은 '20250320' 형태 )

 

 

SELECT *
FROM SCHEMA.TABLENAME
WHERE SUBSTR(DATE_COLUMN, 1, 6) = TO_CHAR(ADD_MONTH(SYSDATE, -1), 'YYYYMM');

 


 

 

MySQL


- TABLENAME 테이블의 DATE_COLUMN 이라는 VARCHAR(4) 컬럼을 기준으로 월배치를 수행할 경우

( DATE_COLUMN 의 값은 '202503' 형태 )

 

SELECT *
FROM SCHEMA.TABLENAME
WHERE DATE_COLUMN = DATE_FORMAT((CURRENT_TIMESTAMP() - INTERVAL 1 MONTH), '%Y%M');

 

 

- TABLENAME 테이블의 DATE_COLUMN 이라는 VARCHAR(8) 컬럼을 기준으로 월배치를 수행할 경우

( DATE_COLUMN 의 값은 '20250320' 형태 )

 

SELECT *
FROM SCHEMA.TABLENAME
WHERE SUBSTR(DATE_COLUMN, 1, 6) = DATE_FORMAT((CURRENT_TIMESTAMP() - INTERVAL 1 MONTH), '%Y%M');

 

 

 

또 쓸일이 있을것같아서 기록용으로 남겨둠