IT 성장일기
[MySQL] MySQL, Maria DB에서 날짜를 구하는 다양한 방법 본문
MySQL, Maria DB에서 날짜를 구하는 다양한 방법
MySQL은 현재 날짜와 시간을 반환하는 다양한 함수를 제공합니다.
대표적으로 SYSDATE()나 NOW() 함수가 있는데요, 이 외의 다양한 함수와 응용방법을 함께 알아보겠습니다.
날짜와 시간 가져오기
1. SYSDATE()
날짜와 시간을 반환하는 가장 대표적인 함수입니다.
함수가 호출되는 순간의 날짜와 시간을 반환합니다.
2. NOW()
현재 날짜와 시간을 반환합니다.
쿼리가 시작되는 순간의 날짜와 시간을 반환하기 때문에 SYSDATE()와 비교했을 때 약간의 오차가 존재합니다.
3. CURRENT_TIMESTAMP()
NOW() 함수와 동일합니다.
4. LOCALTIME()
NOW() 함수와 동일합니다.
5. LOCALTIMESTAMP()
NOW() 함수와 동일합니다.
6. CURDATE()
현재의 날짜를 반환합니다.
7. CURTIME()
현재의 시간을 반환합니다.
8. UTC_TIMESTAMP()
현재 날짜와 시간을 UTC 기준으로 반환합니다.
9. UTC_DATE()
현재 날짜를 UTC 기준으로 반환합니다.
10. UTC_TIME()
현재 시간을 UTC 기준으로 반환합니다.
사용예제를 보겠습니다.
SELECT
SYSDATE() //함수가 호출되는 순간의 날짜와 시간을 반환
, NOW() //쿼리가 시작되는 순간의 날짜와 시간을 반환
, CURRENT_TIMESTAMP() //NOW() 함수와 동일
, LOCALTIME() //NOW() 함수와 동일
, LOCALTIMESTAMP() //NOW() 함수와 동일
, CURDATE() //현재의 날짜를 반환
, CURTIME() //현재의 시간을 반환
, UTC_TIMESTAMP() //현재 날짜와 시간을 UTC 기준으로 반환
, UTC_DATE() //현재 날짜를 UTC 기준으로 반환
, UTC_TIME() //현재 시간을 UTC 기준으로 반환
날짜와 시간의 형식
위 예로 든 함수들이 반환하는 기본 형식은 YYYY-MM-DD HH:MM:SS입니다.
하지만 DATE_FORMAT() 함수와 옵션을 이용해서 값을 다양한 형식으로 바꿀 수가 있습니다.
함께 알아볼게요.
날짜 포맷 옵션
연
- %Y : 연도를 네 자리로 반환합니다. (2024)
- %y : 연도를 두 자리로 반환합니다. (24)
월
- %M : 월을 이름으로 반환합니다. (October, November, December)
- %m : 월을 두 자리로 반환합니다.
- %b : 월을 축약된 이름으로 반환합니다. (Oct, Nov, Dec)
일
- %d : 일을 두 자리로 반환합니다.
- %D : 일에 서수 접미사를 붙여 반환합니다. (1st, 2nd, 3rd)
- %W : 요일을 이름으로 반환합니다.
- %a : 요일을 축약된 이름으로 반환합니다.
- %j : 주어진 날짜가 일 년 중 몇 번째 일인지를 반환합니다.
시간 포맷 옵션
- %H : 시간을 두 자리 24시간제로 반환합니다.
- %h : 시간을 두 자리 12시간제로 반환합니다.
- %i : 분을 두 자리로 반환합니다.
- %s : 초를 두 자리로 반환합니다.
- %p : AM/PM 값을 반환합니다.
- %T : 시분초를 24시간제로 반환합니다.
- %r : 시분초를 AM/PM을 포함해 12시간제로 반환합니다.
사용 예제
날짜와 요일
SELECT
DATE_FORMAT(NOW(), '%Y/%m/%d') as '%Y/%m/%d'
, DATE_FORMAT(NOW(), '%Y-%m-%d') as '%Y-%m-%d'
, DATE_FORMAT(NOW(), '%D %M %Y') as '%D %M %Y'
, DATE_FORMAT(NOW(), '%d %b %Y') as '%d %b %Y'
, DATE_FORMAT(NOW(), '%W, %d %M %Y') as '%W, %d %M %Y'
, DATE_FORMAT(NOW(), '%Y %m %d, %j번 째 날') as '%Y %m %d, %j번 째 날'
시간
SELECT
DATE_FORMAT(NOW(), '%H:%i:%s') as '%H:%i:%s'
, DATE_FORMAT(NOW(), '%T') as '%T'
, DATE_FORMAT(NOW(), '%h:%i:%s') as '%h:%i:%s'
, DATE_FORMAT(NOW(), '%h:%i:%s %p') as '%h:%i:%s %p'
, DATE_FORMAT(NOW(), '%r') as '%r'
마치며
생각보다 함수의 종류와 옵션의 형식이 매우 다양하지만 그만큼 코드를 다채롭게 사용할 여지도 많은 것 같습니다.
%T 옵션이나 %r 옵션은 여러 시분초 옵션이 조합되어 있는 만큼 알아두면 꽤 유용하게 쓸 수도 있구요.
감사합니다!
'Database > MySQL(Maria DB)' 카테고리의 다른 글
[MySQL] MySQL, MariaDB에서 Merge 구문 구현하기 (3) | 2024.12.24 |
---|---|
[MySQL] MySQL, Maria DB에서 컬럼 암, 복호화 하기 (0) | 2024.11.04 |
[MySQL] DATE_ADD와 DATE_SUB로 날짜 계산하기 (2) | 2024.10.21 |
[My SQL] My SQL 설치하기 (0) | 2023.09.11 |