데이터베이스/SQL

[MySQL] 날짜 관련 함수

DS지니 2023. 10. 28. 23:53
728x90
반응형

MySQL에서 날짜 변환은 오라클(TO_CHAR, TO_DATE)과는 다르게 DATE_FORMAT, STR_TO_DATE를 사용한다.

 

 

1. 날짜 형식 변환 함수

(1) DATE_FORMAT

날짜 데이터를 다른 날짜 형식으로 변환

SELECT DATE_FORMAT('2019-03-01 12:23:01', '%Y-%m-%d')

>> 2019-03-11

 

SELECT DATE_FORMAT('2019-03-01 12:23:01', '%Y-%M-%D')

>> 2019-March-11th

 

 

(2) STR_TO_DATE

문자열에서 날짜 형식으로 변환

SELECT STR_TO_DATE('20201103', '%Y-%m-%d')

>> 2020-11-03

 

 

2. 날짜 연산 함수

(1) DATEDIFF(날짜1, 날짜2)

두 날짜의 차이(일수)를 계산하는 함수 (날짜1 - 날짜2)

SELECT DATEDIFF('2022-11-27', '2022-09-27')

>> 61

 

(2) TIMESTAMPDIFF(단위, 날짜1, 날짜2)

두 날짜의 차이를 계산하고 Year, Month, Day, Minute, Second 중 원하는 단위로 출력하는 함수. (날짜1 - 날짜2)

SELECT TIMESTAMPDIFF(SECOND, '2022-11-27', '2023-11-27')

>> 31536000

 

(3) DATE_ADD(날짜1, INTERVAL 날짜/시간)  

시간 또는 날짜를 더하는 함수. 

SELECT DATE_ADD('2022-11-27', INTERVAL 1 DAY)

>> 2022-11-28

 

SELECT DATE_ADD('2022-11-27', INTERVAL 1 HOUR)

>> 2022-11-27 01:00:00

 

 

DATE_ADD 대신 ADDDATE, ADDTIME 사용 가능
SELECT ADDDATE('2022-11-27', INTERVAL 1 DAY)
SELECT ADDDATE('2022-11-27', 1)

SELECT ADDTIME('2022-11-27 12:20:33', '10:10:10')
SELECT ADDTIME('2022-11-27 12:20:33', 10)

 

 

(3) DATE_SUB(날짜1, INTERVAL 날짜/시간)  

시간 또는 날짜를 빼는 함수. 

SELECT DATE_SUB('2022-11-27', INTERVAL 1 DAY)

>> 2022-11-26

 

DATE_SUB 대신 SUBDATE, SUBTIME 사용가능
SELECT SUBDATE'2022-11-27', INTERVAL 1 DAY)
SELECT SUBDATE('2022-11-27', 1)

SELECT SUBTIME('2022-11-27 12:20:33', '10:10:10')
SELECT SUBTIME('2022-11-27 12:20:33', 10)
728x90
반응형