MySQL에 날짜 데이터 삽입하기
MySQL 데이터베이스에 날짜를 저장하려면 먼저 테이블에 DATE 또는 DATETIME 타입의 컬럼이 반드시 존재해야 합니다. 컬럼이 준비되었다면, 데이터를 삽입하기 전에 파이썬의 날짜 객체를 문자열 형식으로 변환해야 합니다. 이 과정에서는 datetime 모듈이 제공하는 strftime() 포맷팅 함수를 활용하는 것이 가장 간단하고 안전한 방법입니다.
예제 코드
from datetime import datetime
now = datetime.now()
id = 1
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
# cursor라는 이름의 커서 객체가 있다고 가정하고 쿼리를 실행합니다.
cursor.execute('insert into table(id, date_created) values(%s, %s)', (id, formatted_date))
위 코드를 실행하면 (id, formatted_date) 튜플이 테이블의 해당 컬럼에 정상적으로 삽입됩니다. 특히 쿼리 작성 시 값을 직접 문자열에 넣지 않고 %s 플레이스홀더와 매개변수 튜플을 사용하면 SQL 인젝션 공격을 예방할 수 있어 보안 측면에서도 권장됩니다.
strftime 형식 코드 이해하기
strftime()에 사용된 형식 코드는 다음과 같은 의미를 가집니다.
- %Y: 4자리 연도 (예: 2024)
- %m: 2자리 월 (01~12)
- %d: 2자리 일 (01~31)
- %H: 24시간 기준 시간 (00~23)
- %M: 분 (00~59)
- %S: 초 (00~59)
만약 시간 정보 없이 날짜만 저장하고 싶다면 '%Y-%m-%d' 형식을 사용하면 되며, 이 경우 DATE 타입 컬럼에 적합한 값이 생성됩니다.