MariaDB , MySQL  -- timestamp vs. datetime, now() , current_timestamp



환경 : MariaDB 5.5, windows 10 64bit, HeidiSQL


참고 : http://stackoverflow.com/questions/409286/should-i-use-field-datetime-or-timestamp

        https://blog.sqlauthority.com/2014/02/14/mysql-when-to-use-timestamp-or-datetime-difference-between-timestamp-or-datetime/


        https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_current-timestamp



timestamp ; 서버의 timezone 을 기반으로 UTC 로 변환되어 저장된다.

              --> timezone을 바꾸면, 시간도 바뀜.

; 사용범위 = ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-19 03:14:07’ UTC

; 4 byte 저장.



datetime ; 입력값 그대로 서버에 저장된다. 

; 사용범위 = ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’

; 8 byte 저장.





** NOW() 사용하기


참고 : https://mariadb.com/kb/en/mariadb/now/


-- timestamp 컬럼에 default 값으로 사용할수있다.


CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP ==  NOW()

 --> 3가지가 모두 같은 기능..


select now();

select current_timestamp();

select current_timestamp;






select curdate();

select curtime();





 ** 사용 예


CREATE TABLE Orders

(

OrderId int NOT NULL,

ProductName varchar(50) NOT NULL,

OrderDate timestamp NOT NULL DEFAULT NOW(),

PRIMARY KEY (OrderId)

);





Posted by 자유프로그램

댓글을 달아 주세요