[MySQL] 내장함수 ② 날짜, 수학

Hunie_07·2026년 2월 23일

SQL

목록 보기
18/18
post-thumbnail

📌 내장함수 (Built-In Function)


📌 날짜, 시간 함수

1️⃣ DBMS서버의 현재 날짜나 시간

  • CURRENT_DATE : 서버의 현재 날짜(연-월-일)
  • CURRENT_TIME : 서버의 현재 시간(시:분:초)
  • CURRENT_TIMESTAMP : 서버의 현재 날짜와 시간
  • NOW : 서버의 현재 날짜와 시간
  • 시간관련 함수의 경우 인수로 3과 같은 정수를 주면 밀리초 단위까지 확인 가능

SELECT current_date(), current_time(), current_timestamp(), now();

- 출력

SELECT current_date(), current_time(3), current_timestamp(3), now(3);

- 출력


2️⃣ 국제표준(UTC) 날짜나 시간

  • UTC_DATE : 세계표준 날짜(연-월-일)
  • UTC_TIME : 세계표준 시간(시:분:초)
  • UTC_TIMESTAMP : 세계표준 날짜와 시간
  • 우리나라와 9시간의 차이가 있다.

SELECT utc_date(), utc_time(), utc_timestamp();

- 출력

SELECT utc_date(), utc_time(4), utc_timestamp(2);

- 출력


3️⃣ 날짜 더하기, 빼기 (DATE_ADD, DATE_SUB)

-- 현재 날짜의 연도에 1년 증가한 날짜
SELECT now(), date_add(now(), INTERVAL 1 YEAR);

- 출력

-- 현재 날짜의 연도에 1년 감소한 날짜
-- 현재 날짜의 연도에 1년 증가한 날짜
SELECT now(),
		date_add(now(), INTERVAL -1 YEAR),
		date_sub(now(), INTERVAL 1 YEAR);

- 출력


4️⃣ 날짜 간 차이 구하기 (DATEDIFF, TIMESTAMPDIFF)

  • DATEDIFF() : 날짜간 일수 차이 반환
  • TIMESTAMPDIFF() : 연, 월, 일, 시간 등의 기준에 따라 두 날짜의 차이를 반환
  • 기준: year , month , day , quarter , minute , second
SELECT DATEDIFF('2023-12-31 23:59:59.999999', '2023-01-01 00:00:00.000000');

- 출력

SELECT TIMESTAMPDIFF(year, '2023-12-31 23:59:59.999999', '2023-01-01 00:00:00.000000'),
	   TIMESTAMPDIFF(month, '2023-12-31 23:59:59.999999', '2023-01-01 00:00:00.000000'),
       TIMESTAMPDIFF(day, '2023-12-31 23:59:59.999999', '2023-01-01 00:00:00.000000'),
       TIMESTAMPDIFF(minute, '2023-12-31 23:59:59.999999', '2023-01-01 00:00:00.000000');

- 출력


5️⃣ 지정한 날짜의 요일 반환 (DAYNAME)

SELECT dayname('2026-02-23');

- 출력


6️⃣ 날짜의 연, 월, 일, 주 등을 반환

  • YEAR()
  • MONTH()
  • WEEK()
  • DAY()
SELECT year('2025-12-30'), month('2025-12-30'),
		day('2025-12-30'), week('2025-12-30');

- 출력


7️⃣ 시간의 시, 분, 초 반환

  • HOUR()
  • MINUTE()
  • SECOND()
SELECT now(), hour(now()), minute(now()), second(now());

- 출력


8️⃣ 날짜 형식 변환 (DATE_FORMAT, GET_FORMAT)

  • DATE_FORMAT(날짜, 국가/지역)
  • GET_FORMAT(날짜, 국가/지역)
SELECT 
	get_format(date, 'USA') AS USA,
    get_format(date, 'EUR') AS EUR,
    get_format(date, 'ISO') AS ISO,
	get_format(date, 'INTERNAL') AS INTERNAL;

- 출력

SELECT 
	date_format(now(), get_format(date, 'USA')) AS USA,
    date_format(now(), get_format(date, 'EUR')) AS EUR,
    date_format(now(), get_format(date, 'ISO')) AS ISO,
	date_format(now(), get_format(date, 'INTERNAL')) AS INTERNAL;

- 출력


📌 수학 함수

  • round() , floor() , ceil() : 반올림, 올림, 내림
  • rank() , dense_rank() , row_number()
    • 순위 출력(동일순위 개수만큼 증가), 동일순위 상관없이 1 증가, 행 순위
  • 삼각함수, 절대값 등

0개의 댓글