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 문에서 해당 컬럼을 생략했을 때도 현재 시각이 자동으로 기록되므로, 로그 기록이나 사용자 활동 추적 등에 매우 유용하게 활용됩니다.