MySQL에서 DATETIME 값에 분을 더하고 싶다면 DATE_ADD() 함수를 사용하면 됩니다. 참고로 PHP 환경에서는 strtotime() 함수를 활용해 같은 작업을 수행할 수 있습니다.
DATE_ADD() 함수 기본 문법
MySQL에서 특정 DATETIME 컬럼에 30분을 추가하는 기본 문법은 다음과 같습니다.
SELECT DATE_ADD(컬럼명, INTERVAL 30 MINUTE) FROM 테이블명;
실습 예제: 테이블 생성하기
문법을 직접 확인해 보기 위해 먼저 테스트용 테이블을 생성해 보겠습니다. 아래 쿼리로 테이블을 만들 수 있습니다.
mysql> CREATE TABLE Add30MinutesDemo -> ( -> YourTime DATETIME -> ); Query OK, 0 rows affected (0.67 sec)
샘플 데이터 삽입하기
테이블이 준비되었다면 현재 시간(NOW())을 이용해 레코드를 하나 삽입합니다.
mysql> INSERT INTO Add30MinutesDemo VALUES(NOW()); Query OK, 1 row affected (0.21 sec)
저장된 데이터 확인
SELECT 문으로 테이블에 저장된 데이터를 조회해 보겠습니다.
mysql> SELECT * FROM Add30MinutesDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | YourTime | +---------------------+ | 2018-12-07 18:03:51 | +---------------------+ 1 row in set (0.00 sec)
30분 추가 쿼리 실행하기
이제 DATE_ADD() 함수를 사용해 DATETIME 컬럼에 30분을 더하는 실제 쿼리를 실행해 보겠습니다.
mysql> SELECT DATE_ADD(YourTime, INTERVAL 30 MINUTE) FROM Add30MinutesDemo;
실행 결과는 다음과 같습니다.
+---------------------------------------+ | DATE_ADD(YourTime, INTERVAL 30 MINUTE) | +---------------------------------------+ | 2018-12-07 18:33:51 | +---------------------------------------+ 1 row in set (0.00 sec)
결과 분석
원래 시간이 18:03:51이었는데, 30분이 추가되어 18:33:51로 정확하게 계산된 것을 확인할 수 있습니다.
추가 팁
- 시간을 빼고 싶다면
DATE_SUB()함수를 사용하거나INTERVAL -30 MINUTE처럼 음수 값을 지정하면 됩니다. INTERVAL단위는HOUR,DAY,MONTH,YEAR등 다양하게 활용할 수 있습니다.