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

MySQL에서 INSERT 실행 중 VARCHAR 날짜/시간 값에 분을 더하는 방법

MySQL에서 INSERT 시 VARCHAR 날짜/시간 값에 분 추가하기

네, 가능합니다. MySQL에서는 테이블에 데이터를 삽입(INSERT)하는 과정에서 VARCHAR 형식으로 저장된 날짜/시간 문자열에 원하는 만큼 분(minute)을 더할 수 있습니다.

핵심은 두 가지 함수를 조합하는 것입니다. STR_TO_DATE() 함수로 VARCHAR 문자열을 날짜/시간 형식으로 변환한 뒤, DATE_ADD() 함수에 INTERVAL 옵션을 사용해 분을 더하면 됩니다.

1. 테이블 생성

먼저 VARCHAR 타입의 날짜/시간 값을 저장할 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable2026
   -> (
   -> ArrivalTime varchar(20)
   -> );
Query OK, 0 rows affected (0.40 sec)

2. INSERT와 함께 분 추가하기

INSERT 명령어로 레코드를 삽입하되, STR_TO_DATE()로 날짜 문자열을 먼저 변환한 후 DATE_ADD()로 분을 더합니다.

mysql> insert into DemoTable2026 values(date_add(str_to_date('2017-12-01 11:34:45','%Y-%m-%d %H:%i:%s'), INTERVAL 10 MINUTE));
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable2026 values(date_add(str_to_date('2015-01-31 10:00:00','%Y-%m-%d %H:%i:%s'), INTERVAL 5 MINUTE));
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable2026 values(date_add(str_to_date('2017-12-01 11:34:45','%Y-%m-%d %H:%i:%s'), INTERVAL 20 MINUTE));
Query OK, 1 row affected (0.12 sec)

여기서 사용된 형식 지정자의 의미는 다음과 같습니다.

  • %Y : 4자리 연도
  • %m : 월 (01~12)
  • %d : 일
  • %H : 시 (00~23)
  • %i : 분
  • %s : 초

3. 결과 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable2026;

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

+---------------------+
| ArrivalTime |
+---------------------+
| 2017-12-01 11:44:45 |
| 2015-01-31 10:05:00 |
| 2017-12-01 11:54:45 |
+---------------------+
3 rows in set (0.00 sec)

출력 결과를 보면 각 레코드가 원래 입력된 시간에서 정확히 10분, 5분, 20분씩 증가한 것을 확인할 수 있습니다. 이처럼 STR_TO_DATE()와 DATE_ADD()를 조합하면 VARCHAR로 저장된 날짜/시간 값도 별도의 컬럼 수정 없이 손쉽게 조작할 수 있습니다.