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

MySQL TIMESTAMP 필드에 사용자 지정 날짜 삽입하는 방법

MySQL TIMESTAMP 필드에 사용자 지정 날짜 삽입하기

MySQL에서 TIMESTAMP 타입의 컬럼에 원하는 특정 날짜와 시간을 직접 삽입해야 하는 경우가 종종 있습니다. 이때 주의할 점은 UNIX_TIMESTAMP() 함수를 사용하면 안 된다는 것입니다.

UNIX_TIMESTAMP() 함수는 입력한 날짜와 시간에 대응하는 정수값(유닉스 타임스탬프)을 반환합니다. 즉, 우리가 원하는 '날짜 형태의 값'이 아니라 단순한 숫자가 반환되기 때문에, TIMESTAMP로 정의된 컬럼에는 적합하지 않습니다.

실제로 확인해 보면 다음과 같습니다.

mysql> select UNIX_TIMESTAMP('2019-01-09 15:48:23') AS IntegerValue;

실행 결과:

+--------------+
| IntegerValue |
+--------------+
| 1547029103   |
+--------------+
1 row in set (0.00 sec)

위 결과에서 볼 수 있듯이, UNIX_TIMESTAMP() 함수는 해당 날짜와 시간에 대응하는 정수값을 반환합니다. 따라서 TIMESTAMP 컬럼에 날짜를 삽입할 때는 이 함수 대신 일반적인 INSERT 문을 사용해야 합니다.

사용자 지정 날짜 삽입 구문

TIMESTAMP 컬럼에 원하는 날짜와 시간을 삽입하는 기본 구문은 다음과 같습니다.

INSERT INTO yourTableName(yourColumnName)
VALUES('yourCustomDateTime');

예제: 테이블 생성 및 데이터 삽입

구문을 이해하기 위해 먼저 테이블을 생성해 보겠습니다.

mysql> create table TimestampDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> yourTimestamp TIMESTAMP,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (2.14 sec)

이제 TIMESTAMP 필드에 사용자 지정 날짜를 삽입합니다.

mysql> insert into TimestampDemo(yourTimestamp) values('2019-01-09 15:48:23');
Query OK, 1 row affected (0.37 sec)

mysql> insert into TimestampDemo(yourTimestamp) values('2018-03-14 16:04:23');
Query OK, 1 row affected (0.37 sec)

mysql> insert into TimestampDemo(yourTimestamp) values('2017-12-10 10:08:20');
Query OK, 1 row affected (0.16 sec)

mysql> insert into TimestampDemo(yourTimestamp) values('2016-04-05 13:45:21');
Query OK, 1 row affected (0.30 sec)

결과 확인

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

mysql> select *from TimestampDemo;

실행 결과:

+----+---------------------+
| Id | yourTimestamp       |
+----+---------------------+
| 1  | 2019-01-09 15:48:23 |
| 2  | 2018-03-14 16:04:23 |
| 3  | 2017-12-10 10:08:20 |
| 4  | 2016-04-05 13:45:21 |
+----+---------------------+
4 rows in set (0.00 sec)

위 출력에서 확인할 수 있듯이, 각 레코드에 지정한 날짜와 시간이 그대로 TIMESTAMP 필드에 저장된 것을 볼 수 있습니다. 참고로 MySQL은 'YYYY-MM-DD HH:MM:SS' 형식의 문자열을 자동으로 인식하여 TIMESTAMP 값으로 변환해 주므로, 별도의 변환 함수 없이 INSERT 문만으로 손쉽게 사용자 지정 날짜를 삽입할 수 있습니다.