dateString:true 가 필요한 이유 (MySQL timestamp VS JS Date 출력 형식 차이)

Songss·2024년 12월 2일

DBMS

목록 보기
7/20

MySQL [timestamp] vs JavaScript [Date] 출력 형식 차이

  1. MySQL 출력:
    • MySQL에서 timestamp`'YYYY-MM-DD HH:mm:ss' 형식의 문자열로 반환됩니다.
    • 예: 2024-12-02 11:58:59
  2. JavaScript 출력:
    • JavaScript의 Date 객체는 Date 객체가 자동으로 로컬 타임존을 반영하여 다음과 같은 형식으로 출력됩니다.
    • 예: Mon Dec 02 2024 11:58:59 GMT+0900 (대한민국 표준시)

왜 다르게 보일까?

  • MySQL의 timestamp 컬럼문자열로 반환되며, 출력 형식이 YYYY-MM-DD HH:mm:ss 형태로 그대로 표시됩니다.
  • 반면, JavaScript Date 객체는 이 값을 로컬 시간대에 맞춰 변환하고, 로컬 시간대의 타임존 정보를 추가하여 출력합니다.

즉, DBMS -> Express로 출력 타입이 달라서 변환이 필요합니다.


해결 방법:

만약 출력 형식을 일관되게 맞추고 싶다면,
.createConnection({}) 구문에 dateStrings : true 설정을 해주세요.

// Get the client
const mysql = require("mysql2"); 

// Create the connection to database
const connection = mysql.createConnection({
  host: "127.0.0.1",
  port: 3306,
  user: "root",
  password: "root",
  database: "Youtube",
  // sql에서 Mon Dec 02 2024 11:58:59 GMT+0900 (대한민국 표준시) 이따구로 출력되는걸
  // 2024-12-02 11:59:59로 깔끔하게 출력 시켜주는 세팅
  dateStrings: true,
});

0개의 댓글