MYSQL DATE 타입 사용시 주의사항

KyungUp·2023년 6월 6일
0

구성

왜 문제가 되는지?

그림 처럼, 나라별 시간이 틀리되, 웹페이지에서 DB로 Date 를 전송할때, 나라에 맞는 시간을 보냅니다.
웹 > DB > 웹 으로 가기때문에 Date를 고정했다가는 꼬일수있습니다

해결 방법은 ?

DB 서버 Timezone를 UTC로 하고, Date 타입을 맞게 저장을 해야합니다.
MYSQL에 STR_TO_DATE를 사용하여 저장을 해야합니다.
REST로 Date받을시 타입이 String 이므로, format을 해주셔야 합니다.

# Table
CREATE TABLE IF NOT EXISTS 'Test' (
    id BIGINT NOT NULL AUTO_INCREMENT,
    custom_date TIMESTAMP NULL,
    PRIMARY KEY (id)
)`

# SQL
INSERT INTO Test (custom_date) VALUES (STR_TO_DATE('${getDateFormat(custom_date)}', '%Y-%m-%d %H:%i:%s')

# Func
const getDateFormat = (customDate) => {
  return new Date(customDate).toISOString().replace('T', ' ').slice(0, 19);
};
profile
poe2 가즈아!

0개의 댓글