Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 DATE_ADD() 함수 없이 NOW()에 6시간 더하는 방법

MySQL에서 DATE_ADD() 함수를 사용하지 않고도 NOW() 값이나 datetime 타입의 컬럼에 시간을 더할 수 있습니다. 이때 INTERVAL 키워드를 활용하면 간단하게 처리할 수 있습니다. 이번 글에서는 실제 예제를 통해 datetime 컬럼에 6시간을 더하는 방법을 단계별로 살펴보겠습니다.

1. 테스트용 테이블 생성

먼저 datetime 타입의 컬럼을 포함하는 테이블을 생성합니다. 아래 쿼리를 사용하면 됩니다.

mysql> create table Add6Hour
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> ArrivalTime datetime
   -> );
Query OK, 0 rows affected (0.56 sec)

위 테이블은 자동 증가하는 기본키인 Id와 도착 시간을 저장하는 ArrivalTime 컬럼으로 구성되어 있습니다.

2. 데이터 삽입

INSERT 명령어를 사용해 현재 시간(NOW())을 저장하는 레코드를 추가합니다.

mysql> insert into Add6Hour(ArrivalTime) values(now());
Query OK, 1 row affected (0.12 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from Add6Hour;

실행 결과는 다음과 같습니다.

+----+---------------------+
| Id | ArrivalTime         |
+----+---------------------+
|  1 | 2019-02-14 18:35:24 |
+----+---------------------+
1 row in set (0.00 sec)

4. NOW() 값에 6시간 더하기

이제 핵심 부분입니다. DATE_ADD() 함수 대신 + INTERVAL 6 HOUR 구문을 사용하면 손쉽게 6시간을 더할 수 있습니다.

mysql> select Id, ArrivalTime, (ArrivalTime + INTERVAL 6 HOUR) AS AfterAdding6HourINNOW from Add6Hour;

실행 결과는 다음과 같습니다.

+----+---------------------+-----------------------+
| Id | ArrivalTime         | AfterAdding6HourINNOW |
+----+---------------------+-----------------------+
|  1 | 2019-02-14 18:35:24 | 2019-02-15 00:35:24   |
+----+---------------------+-----------------------+
1 row in set (0.00 sec)

결과를 보면 원래 시간인 2019-02-14 18:35:24에 6시간이 더해져 2019-02-15 00:35:24로 출력된 것을 확인할 수 있습니다. 날짜가 바뀌는 경우에도 MySQL이 자동으로 올바르게 처리해 줍니다.

참고: 다양한 활용 방법

INTERVAL 키워드는 시간 단위를 자유롭게 지정할 수 있어 매우 유용합니다.

  • NOW() + INTERVAL 30 MINUTE — 현재 시간에 30분 더하기
  • NOW() - INTERVAL 1 DAY — 현재 시간에서 하루 빼기
  • NOW() + INTERVAL 2 WEEK — 현재 시간에 2주 더하기

이처럼 산술 연산자와 INTERVAL을 조합하면 DATE_ADD(), DATE_SUB() 함수 없이도 날짜와 시간 계산을 간결하게 처리할 수 있습니다.