관리 메뉴

솜씨좋은장씨

[MySQL] DATETIME 형식 데이터 업데이트하는 방법 본문

Programming/SQL | Database

[MySQL] DATETIME 형식 데이터 업데이트하는 방법

솜씨좋은장씨 2021. 11. 1. 19:34
728x90
반응형

tlrk

MariaDB를 사용하는 서비스를 개발하면서 최초에 설정 시 Timezone 설정을 제대로 하지 않아

DB에서 자동으로 업데이트 되는 시간과 실제 시간이 9시간이나 차이나고 있었습니다.

 

기존 데이터를 다 지울 수는 없고 문제가 되는 column 만 9시간 이후로 업데이트 할 수 없을까 하던 차에

DATE_ADD 쿼리를 알게되어 해당 쿼리만 9시간 이후로 업데이트를 하였고 

그 이후로 요청되는 값은 서버에 Timezone을 설정하여 제대로 업데이트 되도록 하였습니다.

 

이 글에서는 원하는 column의 원하는 row의 datetime만 업데이트 하는 방법에 대해서 정리해보고자 합니다.

👨🏻‍💻 DATE_ADD

MySQL에서 날짜를 더하거나 뺄때 사용하는 함수입니다.

DATE_ADD(바꾸고 싶은 컬럼, INTERVAL <빼거나 더하고자하는 시간> <월,일,시간,분,초 중 1개>)

⏱ 월, 일, 시간, 분, 초  ( 바꾸고자 하는 컬럼명 db_date )

시간 쿼리 비고
DATE_ADD(db_date, INTERVAL 1 MONTH) 1개월 추가 ( 빼고 싶을때는 -1 )
DATE_ADD(db_date, INTERVAL 1 DAY) 1일 추가 ( 빼고 싶을때는 -1 )
시간 DATE_ADD(db_date, INTERVAL 1 HOUR) 1시간 추가 ( 빼고 싶을때는 -1 )
DATE_ADD(db_date, INTERVAL 1 MINUTE) 1분 추가 ( 빼고 싶을때는 -1 )
DATE_ADD(db_date, INTERVAL 1 SECOND) 1초 추가 ( 빼고 싶을때는 -1 )

예를 들어 현재 데이터에서 9시간을 추가 하고 싶다하면

UPDATE db_table set db_date = DATE_ADD(db_date, interval 9 HOUR);
UPDATE [테이블명] set [바꾸고싶은 column] = DATE_ADD([바꾸고싶은 column], interval [바꾸고싶은 시간] HOUR);

위와 같이 쿼리를 작성하면 됩니다.

 

읽어주셔서 감사합니다.

Comments