날짜 형식을 쉽게 변경하는 방법: SQL의 DATE_FORMAT() 함수 사용법

SQL에서 날짜 데이터를 다룰 때 특정 형식으로 데이터를 표시해야 하는 경우가 종종 있습니다. MySQL의 DATE_FORMAT() 함수를 사용하면 날짜 데이터를 다양한 형식으로 쉽게 변환할 수 있습니다. 이 기사에서는 기본 사용법부터 고급 예제까지 DATE_FORMAT() 함수 사용 방법에 대해 자세히 설명합니다.

목차

DATE_FORMAT() 함수의 기본 사용법

DATE_FORMAT() 함수는 날짜 데이터를 지정된 형식으로 변환하는 데 사용됩니다. 기본 구문은 다음과 같습니다:

DATE_FORMAT(date, format)
  • date: 재포맷할 날짜 데이터
  • format: 원하는 형식

예를 들어, 2024-05-23 날짜를 YYYY-MM-DD 형식에서 MM/DD/YYYY 형식으로 변환하려면 SQL 쿼리는 다음과 같습니다:

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

이 쿼리의 결과는 05/23/2024가 됩니다. 이제 DATE_FORMAT() 함수에서 사용할 수 있는 형식 지정자를 자세히 살펴보겠습니다.

형식 지정자 목록

DATE_FORMAT() 함수는 다양한 형식 지정자를 사용하여 날짜를 표시할 수 있습니다. 주요 형식 지정자는 다음과 같습니다:

날짜 관련 형식 지정자

  • %Y: 네 자릿수 연도 (예: 2024)
  • %y: 두 자릿수 연도 (예: 24)
  • %m: 두 자릿수 월 (01-12)
  • %c: 월 (1-12)
  • %d: 두 자릿수 일 (01-31)
  • %e: 일 (1-31)

시간 관련 형식 지정자

  • %H: 24시간 형식의 두 자릿수 시간 (00-23)
  • %k: 24시간 형식의 시간 (0-23)
  • %h: 12시간 형식의 두 자릿수 시간 (01-12)
  • %I: 12시간 형식의 시간 (01-12)
  • %l: 12시간 형식의 시간 (1-12)
  • %i: 두 자릿수 분 (00-59)
  • %s: 두 자릿수 초 (00-59)
  • %p: AM 또는 PM

기타 형식 지정자

  • %W: 요일 이름 (예: Sunday)
  • %a: 축약된 요일 이름 (예: Sun)
  • %M: 월 이름 (예: January)
  • %b: 축약된 월 이름 (예: Jan)
  • %j: 연중 일 수 (001-366)

이러한 지정자를 결합하여 다양한 형식으로 날짜를 표시할 수 있습니다. 다음으로, 이러한 지정자를 사용한 구체적인 사용 예를 살펴보겠습니다.

실용적인 예제

다음은 DATE_FORMAT() 함수를 사용하여 날짜 데이터를 다양한 형식으로 변환하는 몇 가지 예제입니다.

예제 1: 표준 날짜 형식 변경

다음 예제에서는 2024-05-23 날짜를 MM/DD/YYYY 형식으로 변환합니다.

SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;

결과: 05/23/2024

예제 2: 월과 연도만 표시

이 예제에서는 날짜 데이터에서 월과 연도를 추출하여 표시합니다.

SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;

결과: May 2024

예제 3: 날짜와 요일 표시

이 예제에서는 날짜를 요일 이름을 포함한 형식으로 변환합니다.

SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;

결과: Thursday, May 23, 2024

예제 4: 시간 데이터 형식 지정

이 예제에서는 시간 데이터를 HH:MM AM/PM 형식으로 변환합니다.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;

결과: 02:30 PM

예제 5: 전체 타임스탬프 표시

이 예제에서는 날짜와 시간을 모두 포함하는 전체 타임스탬프 형식을 변경합니다.

SELECT DATE_FORMAT('2024-05-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_timestamp;

결과: 2024-05-23 14:30:00

이 예제들을 참고하여 필요한 형식으로 날짜 데이터를 변환하십시오. 다음으로 DATE_FORMAT() 함수를 사용한 고급 예제를 살펴보겠습니다.

고급 예제

DATE_FORMAT() 함수를 활용하면 더 복잡한 요구 사항을 처리할 수 있습니다. 여기에는 여러 열과 조건부 형식 변경을 포함한 몇 가지 예제가 있습니다.

예제 1: 여러 열을 사용한 날짜 형식 지정

이 예제는 여러 날짜 열을 다른 형식으로 표시하는 방법을 보여줍니다.

SELECT 
    DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_order_date,
    DATE_FORMAT(delivery_date, '%M %d, %Y') AS formatted_delivery_date
FROM orders;

이 쿼리는 order_dateYYYY-MM-DD 형식으로, delivery_dateMonth DD, YYYY 형식으로 표시합니다.

예제 2: 조건부 형식 변경

이 예제는 조건에 따라 형식을 변경하는 방법을 보여줍니다. 여기서는 status 열의 값에 따라 날짜 형식이 변경됩니다.

SELECT 
    order_id,
    status,
    CASE 
        WHEN status = 'shipped' THEN DATE_FORMAT(ship_date, '%M %d, %Y')
        ELSE DATE_FORMAT(order_date, '%Y-%m-%d')
    END AS formatted_date
FROM orders;

이 쿼리는 statusshipped인 경우 ship_dateMonth DD, YYYY 형식으로 표시하고, 그렇지 않은 경우 order_dateYYYY-MM-DD 형식으로 표시합니다.

예제 3: 동적으로 생성된 날짜 형식 지정

이 예제는 현재 날짜를 동적으로 생성하고 형식을 지정하는 방법을 보여줍니다.

SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;

이 쿼리는 현재 날짜와 시간을 Weekday, Month Day, Year Hour:Minute AM/PM 형식으로 표시합니다.

예제 4: 로케일별 날짜 형식

이 예제는 로케일별 형식으로 날짜를 표시하는 방법을 보여줍니다. 예를 들어, 일본 로케일 형식으로 날짜를 표시합니다.

SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;

이 쿼리는 order_date를 일본 로케일 형식인 YYYY年MM月DD日로 표시합니다.

이 고급 예제를 참조하여 DATE_FORMAT() 함수를 유연하게 활용하십시오. 다음으로 DATE_FORMAT() 함수 사용의 주요 포인트를 요약하고 실용적인 응용 팁을 제공합니다.

요약

DATE_FORMAT() 함수는 MySQL에서 날짜 데이터의 형식을 유연하게 변경할 수 있는 강력한 도구입니다. 기본 사용법부터 세부 형식 지정자, 실용적인 예제 및 고급 사용 사례까지, 날짜 데이터를 자유롭게 조작하는 방법을 배웠습니다. 여기 주요 포인트를 정리했습니다:

DATE_FORMAT() 함수의 주요 포인트

  • 기본 구문: DATE_FORMAT(date, format)을 사용하여 날짜를 지정된 형식으로 변환합니다.
  • 형식 지정자: 연도, 월, 일, 시간, 요일 등 다양한 표시 옵션을 위한 형식 지정자를 결합합니다.
  • 실용적인 예제: 표준 날짜 형식 변경 및 특정 시간 표시.
  • 고급 예제: 여러 열의 형식 변경, 조건부 형식 변경, 동적으로 생성된 날짜 및 로케일별 표시.

DATE_FORMAT() 함수를 숙달하면 데이터베이스에서 검색한 날짜 데이터를 가독성 높은 형식으로 표시하여 애플리케이션과 보고서의 품질을 향상시킬 수 있습니다. 일상적인 데이터 작업 및 분석에 꼭 활용해 보십시오.

목차