주로 Oracle의 DB를 이용할 때, 현재 시간을 담고자 한다면 데이터 형을 DATE로 만들고 컬럼에 SYSDATE를 담으면 알아서 되곤 했다.
예시) INSERT INTO table_name ( WRITE_DATA ) VALUES ( SYSDATE );
하지만 MySQL에서는 버전을 기준으로 방법이 조금 다른데, V5.6 를 기준으로 이전 버전에서는 now(), sysdate() 함수를 이용하면 Oracle과 같은 형태로 사용이 가능했다고 한다.
그리고 V5.6 이상의 버전에서는 이 방법을 권장하진 않는다. (확인 결과 지금은 잘된다. 분명 안되서 메모를 해둔 것 같은데-_-)
컬럼 자체에 default 값을 따로 주면 알아서 데이터를 insert할 때, 그 시간이 기록되는 형태를 가진다. (오라클에선 시퀀스를 이용하고, MySQL에선 Default 값을 정해주는 식..) 그때 CURRENT_TIMESTAMP 라는 걸 사용 하면 된다.
단 CURRENT_TIMESTAMP를 사용 하기 위해서는 데이터 타입도 TIMESTAMP를 사용해야 한다!
예시) ALTER TABLE `TABLE_NAME ` CHANGE `COLUMN_NAME ` `COLUMN_NAME ` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
CREATE TABLE_NAME COLUMN_NAME ( COLUMN_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
찾고 보니 MySQL 레퍼런스에 종류 별로 정말 잘 정리가 되어있다 -_-)
참고 출처 :
http://www.cikorea.net/bbs/view/tip?idx=8089
https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html
http://jsonobject.tistory.com/122
'디버깅 > MySQL, MariaDB' 카테고리의 다른 글
[SQL] 서브쿼리 (Sub Query)를 이용한 게시글의 댓글 갯수 출력 (0) | 2018.06.06 |
---|