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

MySQL에서 현재 날짜와 시간을 타임스탬프로 설정하는 방법

MySQL에서 레코드가 저장되는 시점의 현재 날짜와 시간을 자동으로 기록하려면 TIMESTAMP 데이터 타입을 활용할 수 있습니다. 이번 글에서는 테이블 생성부터 NOW() 함수를 사용한 현재 시각 입력, 그리고 결과 확인까지 전 과정을 예제와 함께 살펴보겠습니다.

1. TIMESTAMP 컬럼이 포함된 테이블 생성

먼저 사용자 로그인 시간을 저장할 테이블을 생성합니다. 이때 UserLoginTime 컬럼을 TIMESTAMP 타입으로 지정하고, 기본값(DEFAULT)을 CURRENT_TIMESTAMP로 설정하여 별도의 값 입력 없이도 현재 시각이 자동으로 저장되도록 구성합니다.

mysql> create table DemoTable648(
   UserId int NOT NULL AUTO_INCREMENT,
   UserLoginTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY(UserId)
);
Query OK, 0 rows affected (0.66 sec)

위 쿼리에서 각 요소의 역할은 다음과 같습니다.

  • UserId: AUTO_INCREMENT 옵션으로 자동 증가하는 기본 키(PK)
  • UserLoginTime: NOT NULL 제약 조건과 CURRENT_TIMESTAMP 기본값을 가진 TIMESTAMP 컬럼

2. NOW() 함수를 사용해 현재 날짜와 시간 삽입

NOW() 함수는 쿼리가 실행되는 순간의 현재 날짜와 시간을 반환합니다. INSERT 문에서 이 함수를 사용하면 타임스탬프 컬럼에 실행 시점의 시각이 그대로 저장됩니다.

mysql> insert into DemoTable648(UserLoginTime) values(NOW());
Query OK, 1 row affected (0.22 sec)

3. SELECT 문으로 저장된 결과 확인

테이블에 저장된 모든 레코드를 확인하기 위해 SELECT 문을 실행합니다.

mysql> select * from DemoTable648;

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

+--------+---------------------+
| UserId | UserLoginTime       |
+--------+---------------------+
|      1 | 2019-07-18 21:11:50 |
+--------+---------------------+
1 row in set (0.00 sec)

정리

이처럼 TIMESTAMP 컬럼에 NOW() 함수를 활용하면 레코드 삽입 시점의 현재 날짜와 시간을 손쉽게 저장할 수 있습니다. 또한 DEFAULT CURRENT_TIMESTAMP 옵션을 함께 사용하면 INSERT 문에서 해당 컬럼을 생략했을 때도 현재 시각이 자동으로 기록되므로, 로그 기록이나 사용자 활동 추적 등에 매우 유용하게 활용됩니다.