MariaDB에서 TIMESTAMPADD 함수 사용하기

2024-04-02

MariaDB에서 TIMESTAMPADD 함수 사용하기

기본 구문:

TIMESTAMPADD(interval unit_amount FROM timestamp_expression);

파라미터:

  • interval: 추가할 값의 단위를 나타냅니다. YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 등의 값을 사용할 수 있습니다.
  • unit_amount: interval 단위에 따라 추가할 값의 양을 나타냅니다. 예를 들어, interval이 DAY이고 unit_amount가 3이면 3일을 추가합니다.
  • timestamp_expression: 값을 추가할 날짜와 시간을 나타내는 표현식입니다. TIMESTAMP, DATETIME, DATE 등의 데이터 형식을 가진 열이나 함수를 사용할 수 있습니다.

예시:

  1. 현재 날짜에 3개월을 추가합니다.
SELECT TIMESTAMPADD(MONTH, 3, CURRENT_DATE());
  1. '2024-03-15'에 10시간을 추가합니다.
SELECT TIMESTAMPADD(HOUR, 10, '2024-03-15');
  1. '2024-03-15 12:00:00'에 1분을 빼고 30초를 더합니다.
SELECT TIMESTAMPADD(MINUTE, -1, TIMESTAMPADD(SECOND, 30, '2024-03-15 12:00:00'));

TIMESTAMPADD 함수의 장점:

  • 날짜와 시간 계산을 간편하게 수행할 수 있습니다.
  • 다양한 날짜/시간 단위를 지원합니다.
  • SQL 표현식 내에서 사용할 수 있습니다.

참고:

  • TIMESTAMPADD 함수는 MariaDB 5.5 이상 버전에서 지원됩니다.
  • TIMESTAMPADD 함수는 INTERVAL 데이터 형식을 지원하지 않습니다.


TIMESTAMPADD 함수 예시 코드

-- 현재 날짜와 시간 출력
SELECT CURRENT_TIMESTAMP();

-- 현재 날짜에 3개월 추가
SELECT TIMESTAMPADD(MONTH, 3, CURRENT_DATE());

-- '2024-03-15'에 10시간 추가
SELECT TIMESTAMPADD(HOUR, 10, '2024-03-15');

-- '2024-03-15 12:00:00'에 1분 빼고 30초 더하기
SELECT TIMESTAMPADD(MINUTE, -1, TIMESTAMPADD(SECOND, 30, '2024-03-15 12:00:00'));

-- 특정 날짜와 시간에 1주일 추가
SELECT TIMESTAMPADD(DAY, 7, '2023-12-25 00:00:00');

-- 현재 날짜로부터 1년 전 날짜 출력
SELECT TIMESTAMPADD(YEAR, -1, CURRENT_DATE());

-- '2024-03-15' 기준으로 2개월 후 첫째 날 출력
SELECT DATE_ADD(TIMESTAMPADD(MONTH, 2, '2024-03-15'), INTERVAL 1 DAY - INTERVAL DAYOFMONTH('2024-03-15') DAY);

참고:

  • 위 코드는 MariaDB 10.6 버전에서 테스트되었습니다.
  • 코드 실행 전에 테이블 및 데이터가 존재하는지 확인하십시오.
  • 필요에 따라 코드를 수정하여 사용하십시오.


TIMESTAMPADD 함수 대체 방법

DATE_ADD 및 INTERVAL 함수 사용:

DATE_ADD(timestamp_expression, INTERVAL unit_amount unit);

예시:

-- 현재 날짜에 3개월 추가
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 3 MONTH);

-- '2024-03-15'에 10시간 추가
SELECT DATE_ADD('2024-03-15', INTERVAL 10 HOUR);

직접 계산:

-- 현재 날짜 + 3개월
SELECT DATE_ADD(YEAR(CURRENT_DATE()), 3, MONTH(CURRENT_DATE()))
    || '-' || DAYOFMONTH(CURRENT_DATE())
    || '-' || HOUR(CURRENT_DATE())
    || ':' || MINUTE(CURRENT_DATE())
    || ':' || SECOND(CURRENT_DATE());

-- '2024-03-15 12:00:00' + 1분 - 30초
SELECT DATE_ADD('2024-03-15 12:00:00', INTERVAL 1 MINUTE - INTERVAL 30 SECOND);

스크립팅 언어 사용:

Python, PHP 등의 스크립팅 언어를 사용하여 날짜와 시간 계산을 수행할 수 있습니다.

주의 사항:

  • 대체 방법은 TIMESTAMPADD 함수보다 더 복잡하거나 코드 길이가 길어질 수 있습니다.
  • 특정 상황에 따라 적절한 방법을 선택해야 합니다.