반응형
1, 날짜 형식
MYSQL에서 사용하는 날짜 형식은 주로 DATETIME / DATE 두 가지가 쓰인다.
DATETIME 타입은 YYYY-MM-DD hh:mm:ss
DATE 타입은 YYYY-MM-DD 형식이다.
여기서 두 타입을 다시 편한 대로 바꿀 수 있는 방법이 있다.
DATE_FORMAT('날짜', '형식')
위의 방법으로 사용된다.
주로 쓰이는 DATE_FORMAT의 형식들은 다음과 같다.
FORMAT | 설명 |
%Y | 연도 (2023, 1999, 2002...) |
%y | 연도 (23, 99, 02...) |
%M | 월 (Janeary, February, March...) |
%m | 월 (01, 02, 03...) |
%D | 일 (1st, 2nd, 3rd...26th...) |
%d | 일 (01, 02, 03 ... 26...) |
%H | 시간 (00~23) |
%h | 시간 (01~12) |
%i | 분 (00~59) |
%s | 초 (00~59) |
%p | 오전/오후 (AM, PM) |
아마 이 정도만 알아도 충분할 것이라 생각된다...
그래서 어떻게 사용하는가?
SELECT DATE_FORMAT("2023-09-12 20:02:32", "%Y-%m-%d %h:%i:%s")
2023-09-12 08:02:32
위와 같이 나오게 된다.
만약 형식을 바꾼다면
SELECT DATE_FORMAT("2023-09-12 20:02:32", "%Y년 %m월 %d일 %h시 %i분 %s초")
2023년 09월 12일 08시 02분 32초
위와 같이 지정된 형식대로 표기가 가능하다.
2. 날짜 계산
- DATE_ADD() : 날짜, 시간 더하기
- DATE_SUB() : 날짜, 시간 빼기
- DATEDIFF() : 두 기간 사이의 일수 계산
- TIMEDIFF() : 두 기간 사이의 시간 계산
- PERIOD_DIFF() : 두 기간 사이의 개월 수 계산
- TIMESTAMPDIFF() : 두 기간 사이의 시간 계산
DATE_ADD()
DATE_ADD(기준날짜, INTERVAL 'N' <YEAR, MONTH, DAY, HOUR, MINUTE, SECOND>)
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND)
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE)
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR)
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY)
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH)
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR)
SELECT DATE_ADD(NOW(), INTERVAL -1 YEAR)
DATE_SUB()
DATE_SUB(기준날짜, INTERVAL 'N' <year, month,="" day,="" hour,="" minute,="" second="">)</year,>
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND)
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE)
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR)
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY)
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH)
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR)
SELECT DATE_SUB(NOW(), INTERVAL -1 YEAR)
DATEDIFF()
DATEDIFF(기준날짜1, 기준날짜2)
- 두 기간 사이의 day를 계산
- 시간은 고려하지 않음
- 날짜 범위에서 벗어나는 값을 입력 시 NULL 리턴
SELECT DATEDIFF('2023-09-12', '2023-09-01')
TIMEDIFF()
TIMEDIFF(기준시간1, 기준시간2)
- 두 시간 사이의 시간 계산
- 시간 또는 날자 범위에서 벗어난 값을 입력 시 NULL 리턴
SELECT TIMEDIFF('2023-09-12 23:00:00', '2023-09-12 01:00:00')
PERIOD_DIFF()
PERIOD_DIFF(기준년월1, 기준년월2)
- 두 기간 사이의 개월 수 계산
- 기준년월은 YYYYMM 혹은 YYMM 형식
SELECT PERIOD_DIFF('202309', '202302')
TIMESTAMPDIFF()
TIMESTAMPDIFF(<YEAR, MONTH, DAY, HOUR, MINUTE, SECOND>, 기준 시간1, 기준 시간 2)
- 기준 시간1과 기준 시간2의 차이를 앞에 선언된 단위에 따라 계산
SELECT TIMESTAMPDIFF(YEAR, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
SELECT TIMESTAMPDIFF(MONTH, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
SELECT TIMESTAMPDIFF(DAY, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
SELECT TIMESTAMPDIFF(HOUR, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
SELECT TIMESTAMPDIFF(MINUTE, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
SELECT TIMESTAMPDIFF(SECOND, '2022-01-01 00:00:00', '2023-01-01 23:59:59')
반응형
'DB > MySQL' 카테고리의 다른 글
[Mysql] 프로그래머스 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.09.19 |
---|---|
[Mysql] 별칭(alias) 정렬 (0) | 2023.09.15 |
[Mysql] 조건문 CASE~ WHEN~ THEN~ 알아보기 (0) | 2023.09.15 |
Join 알아보기 (0) | 2023.09.12 |
[MySQL] 서브쿼리 (0) | 2022.10.03 |
댓글