MySQL에서 현재 날짜에 원하는 특정 시간을 조합하여 DATETIME 컬럼에 삽입하려면 CONCAT() 함수를 활용할 수 있습니다. CONCAT()은 여러 문자열을 하나로 연결해 주는 함수로, CURDATE()가 반환하는 현재 날짜와 지정한 시각 문자열을 합쳐서 삽입하는 방식입니다.
기본 문법
INSERT INTO DemoTable VALUES(CONCAT(CURDATE(), '원하는시간'));
이 문법을 실제로 적용해 보겠습니다. 먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.
1. 테이블 생성하기
mysql> CREATE TABLE DemoTable
(
ArrivalDate datetime
);
Query OK, 0 rows affected (1.06 sec)2. 현재 날짜와 특정 시간 삽입하기
이제 INSERT 명령으로 레코드를 추가합니다. 아래 예시에서는 현재 날짜에 오전 10시 20분 5초와 정오 12시 5분이라는 두 가지 시간을 각각 조합하여 삽입했습니다.
mysql> INSERT INTO DemoTable VALUES(CONCAT(CURDATE(), ' 10:20:05')); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO DemoTable VALUES(CONCAT(CURDATE(), ' 12:05:00')); Query OK, 1 row affected (0.17 sec)
3. 결과 확인하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> SELECT * FROM DemoTable;
출력 결과
+---------------------+ | ArrivalDate | +---------------------+ | 2019-06-08 10:20:05 | | 2019-06-08 12:05:00 | +---------------------+ 2 rows in set (0.00 sec)
출력 결과를 보면 두 레코드 모두 실행 당시의 현재 날짜(2019-06-08)에 지정한 시간(10:20:05, 12:05:00)이 성공적으로 결합되어 저장된 것을 확인할 수 있습니다.
참고: 대체 방법
CONCAT() 외에도 CONCAT_WS() 함수나 TIMESTAMP() 함수를 사용하여 같은 결과를 얻을 수 있습니다. 예를 들어 TIMESTAMP(CURDATE(), '10:20:05')처럼 작성하면 날짜와 시간을 더 명확하게 결합할 수 있으므로, 상황에 맞게 선택하여 사용하시면 됩니다.