ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL에서 time zone offset을 지정하여 데이터 삽입하기
    MySQL 2024. 4. 10. 19:27

    MySQL에서 time zone offset 사용해보기

    다음과 같은 쿼리문은 MySQL에서 실행이 잘 될까?

    INSERT INTO ts (col)
    VALUES ('2020-01-01 10:10:10'),
           ('2020-01-01 10:10:10+05:30'),
           ('2020-01-01 10:10:10-08:00');

    MySQL 서버 버전에 따라 다르다.
    MySQL 8.0.19 부터 TIMESTAMP와 DATETIME 타입의 컬럼에 데이터를 삽입할 때, time zone offset을 지정할 수 있다.

    그 이하의 버전에서 위의 쿼리를 실행하면 다음과 같은 에러를 볼 수 있다.

    [22001][1292] Data truncation: Incorrect datetime value: '2020-01-01 10:10:10+05:30' for column 'col' at row 2

    DATETIME

    위의 쿼리를 실행한다고 해서 DATETIME 타입에 time zone offset이 저장되는 것은 아니다.
    데이터가 삽입되기 전에 time zone offset을 계산하여 반영한 후에 데이터가 저장된다.

    참고 자료

    위의 MySQL 레퍼런스 문서를 보면 아래와 같은 문구를 볼 수 있다.
    추가로 사용법과 예시, 주의사항 등도 볼 수 있다.

    Beginning with MySQL 8.0.19, you can specify a time zone offset when inserting TIMESTAMP and DATETIME values into a table.
Designed by Tistory.