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
반응형
'데이터베이스 > SQL' 카테고리의 다른 글
[MySQL] 소수점 관리(ROUND, TRUNCATE, FORMAT) (0) | 2023.11.01 |
---|---|
SQL 테이블 코드 만들기 예시 (0) | 2021.08.15 |
집합연산자(UNION, INTERSECT, EXCEPT) (0) | 2021.08.14 |
[PostgreSQL] 문자열 한개 또는 여러개 치환하기(REPLACE, REGEXP_REPLACE, CASE WHEN) (0) | 2021.08.08 |
[PostgreSQL] 년도,월,일,시간 등 추출하기(EXTRACT) (0) | 2021.08.08 |