MySQL 테이블에 타임스탬프 삽입
- MySQL 테이블 생성
-
NOW()
를 사용하여 타임스탬프를 MySQL 테이블에 삽입 -
CURRENT_TIMESTAMP()
를 사용하여 타임스탬프를 MySQL 테이블에 삽입 -
MySQL 테이블의
TIMESTAMP
유형 열에 대해 Null 또는 기본값 설정
오늘은 테이블 정의를 기반으로 MySQL 테이블의 TIMESTAMP
타입 컬럼에 날짜와 시간을 삽입하는 방법에 대해 알아보겠습니다.
MySQL 테이블 생성
먼저 이 자습서에서 사용할 테이블을 만듭니다.
예제 코드:
CREATE TABLE demo_one(
demo_one_id INT NOT NULL,
demo_one_timestamp TIMESTAMP NOT NULL,
PRIMARY KEY(demo_one_id)
);
테이블 정의에 대해 자세히 알아보려면 다음과 같이 DESCRIBE
를 사용하십시오.
질문:
DESCRIBE demo_one;
출력:
+--------------------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-----------+------+-----+---------+-------+
| demo_one_id | int | NO | PRI | NULL | |
| demo_one_timestamp | timestamp | NO | | NULL | |
+--------------------+-----------+------+-----+---------+-------+
2 rows in set (0.08 sec)
두 속성 모두 NULL
값을 허용하지 않으며 이들에 대한 기본값이 없음을 알 수 있습니다. 이는 두 열의 값을 모두 삽입해야 한다는 의미입니다.
NOW()
를 사용하여 타임스탬프를 MySQL 테이블에 삽입
TIMESTAMP를 MySQL 테이블에 삽입하는 첫 번째 방법은 NOW()
입니다.
질문:
INSERT INTO demo_one (demo_one_id, demo_one_timestamp)
VALUES
(1, NOW());
SELECT
문을 사용하여 현재 테이블 데이터를 확인합니다.
질문:
SELECT * FROM demo_one;
출력:
+-------------+---------------------+
| demo_one_id | demo_one_timestamp |
+-------------+---------------------+
| 1 | 2022-05-14 11:04:11 |
+-------------+---------------------+
1 row in set (0.00 sec)
CURRENT_TIMESTAMP()
를 사용하여 타임스탬프를 MySQL 테이블에 삽입
CURRENT_TIMESTAMP()
메서드를 사용하여 이전에 생성한 MySQL 테이블에 TIMESTAMP를 삽입할 수도 있습니다.
질문:
INSERT INTO demo_onE (demo_one_id, demo_one_timestamp)
VALUES
(2, CURRENT_TIMESTAMP());
아래와 같이 SELECT
문을 사용하여 테이블의 데이터를 볼 수 있습니다.
질문:
SELECT * FROM demo_one;
출력:
+-------------+---------------------+
| demo_one_id | demo_one_timestamp |
+-------------+---------------------+
| 1 | 2022-05-14 11:04:11 |
| 2 | 2022-05-14 11:06:01 |
+-------------+---------------------+
2 rows in set (0.03 sec)
MySQL 테이블의 TIMESTAMP
유형 열에 대해 Null 또는 기본값 설정
TIMESTAMP
유형 열에 대한 값을 삽입하지 않으려면 두 가지 방법으로 삽입할 수 있습니다. NULL
값을 허용하도록 해당 열을 설정하거나 열의 기본값을 설정하십시오.
예제 코드(demo_two_timestamp
필드에 null
값 허용):
CREATE TABLE demo_two(
demo_two_id INT NOT NULL,
# we can also write the following column definition
# as `demo_two_timestamp TIMESTAMP NULL`
demo_two_timestamp TIMESTAMP,
PRIMARY KEY(demo_two_id)
);
INSERT INTO demo_two (demo_two_id, demo_two_timestamp) VALUES (1,null), (2, NOW());
SELECT * FROM demo_two;
출력:
+-------------+---------------------+
| demo_two_id | demo_two_timestamp |
+-------------+---------------------+
| 1 | NULL |
| 2 | 2022-05-14 11:15:18 |
+-------------+---------------------+
2 rows in set (0.04 sec)
여기에서 demo_two_timestamp
열의 값을 삽입하지 않으려면 NULL
을 사용할 수 있습니다. 또한 특정 레코드에 대해 NULL
을 원하지 않는 경우 NOW()
또는 CURRENT_TIMESTAMP()
를 사용하여 올바른 값을 유연하게 삽입할 수 있습니다.
예제 코드(demo_three_timestamp
필드의 기본값 설정):
CREATE TABLE demo_three(
demo_three_id INT NOT NULL,
demo_three_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(demo_three_id)
);
INSERT INTO demo_three (demo_three_id) VALUES (1);
INSERT INTO demo_three (demo_three_id, demo_three_timestamp) VALUES (2, NOW());
INSERT INTO demo_three (demo_three_id, demo_three_timestamp)
VALUES (3, CURRENT_TIMESTAMP());
SELECT * FROM demo_three;
출력:
+---------------+----------------------+
| demo_three_id | demo_three_timestamp |
+---------------+----------------------+
| 1 | 2022-05-14 11:21:57 |
| 2 | 2022-05-14 11:22:20 |
| 3 | 2022-05-14 11:22:40 |
+---------------+----------------------+
3 rows in set (0.00 sec)
demo_three_timestamp
열의 값을 입력하고 싶지 않거나 NULL
을 원하지 않는 경우 위의 예에서 설명한 대로 DEFAULT CURRENT_TIMESTAMP
를 사용하여 기본값을 설정할 수 있습니다.
관련 문장 - MySQL Table
- MySQL 테이블에서 첫 번째 행 선택
- MySQL 테이블의 모든 행을 통한 루프
- Mysqldump를 사용하여 단일 테이블 백업
- MySQL에 최근 삽입된 레코드의 ID 가져오기
- MySQL에서 데이터를 복사하지 않고 테이블 구조 복사