database/mysql

[MySQL] UTC PST PDT KST와 datetime vs timestamp

moonsiri 2021. 12. 16. 11:27
728x90
반응형

UTC : 협정 세계시

Coordinated Universal Time/Universal Time Coordinated

국제 표준시. 

UTC는 그리니치 평균시(GMT)에 기반하므로 GMT로도 불리기도 하는데, UTC와 GMT는 초의 소수점 단위에서만 차이가 나기 때문에 일상에서는 혼용된다. 기술적인 표기에서는 UTC가 사용된다.

 

PST : 태평양 표준시

Pacific Standard Time

UTC-8:00

북미에서 관찰되는 시간대 중 하나로 PDT는 이 시간대의 변형이다.

 

PDT : 태평양 일광 절약 시간

Pacific Daylight Time

UTC-7:00

서머타임이 포함된다.

 

KST : 한국 표준시

Korea Standard Time

UTC+9:00

 


 

Mysql의 Time Zone을 확인해보겠습니다.

mysql > SHOW VARIABLES LIKE '%time_zone%';

Variable_name     Value       
----------------  ------------
system_time_zone  UTC         
time_zone         Asia/Seoul

 

datetime과 timestamp 타입을 컬럼을 가진 테이블을 생성합니다.

CREATE TABLE temp_date (
	temp_datetime DATETIME,
	temp_timestamp TIMESTAMP
);

 

현재 시간을 넣은 뒤 조회합니다.

INSERT INTO temp_date VALUES (NOW(), NOW());
mysql> SELECT * FROM temp_date;

temp_datetime             temp_timestamp  
-------------------  ---------------------
2021-12-16 11:18:17    2021-12-16 11:18:17

 

시스템의 time zone을 변경하고 테이블을 다시 조회하면 timestamp의 값이 변경되는 것을 확인할 수 있습니다.

mysql> SET time_zone='America/New_York';

mysql> SHOW VARIABLES LIKE '%time_zone%';

Variable_name     Value             
----------------  ------------------
system_time_zone  UTC               
time_zone         America/New_York
mysql> SELECT * FROM temp_date;

temp_datetime             temp_timestamp  
-------------------  ---------------------
2021-12-16 11:18:17    2021-12-15 21:18:17

 

timesatmp의 값은 time_zone에 의존하는 것을 확인할 수 있습니다.

 

Datetime

1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

 

Timestamp

1970-01-01 00:00:01 ~ 2038-01-19 03:14:07

index가 더 빠르게 생성됩니다.

 

 

 

[Reference]

https://savvytime.com/converter/pdt-to-kst-utc/aug-1-2021/3am

728x90
반응형