Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

Python 날짜를 MySQL용 10자리 유닉스 타임스탬프로 변환하는 방법

MySQL에서는 날짜를 10자리 숫자 형태의 유닉스 타임스탬프(Unix Timestamp)로 저장하거나 처리해야 하는 경우가 많습니다. Python에서는 이를 아주 간단하게 변환할 수 있으며, 날짜가 어떤 형태로 주어졌는지에 따라 두 가지 방법으로 나눌 수 있습니다.

1. datetime 객체가 있는 경우

날짜가 이미 datetime 객체 형태로 되어 있다면, 해당 객체의 timetuple() 메서드를 호출한 뒤 그 결과를 time.mktime() 함수에 전달하기만 하면 됩니다.

예제 코드

import time
from datetime import date
from datetime import datetime

my_date = date.today()
print(time.mktime(my_date.timetuple()))

실행 결과

위 코드를 실행하면 다음과 같이 10자리 타임스탬프 값이 출력됩니다.

1514917800.0

2. 문자열 형태의 날짜가 있는 경우

날짜가 문자열로 주어진 경우에는 먼저 time.strptime() 함수를 사용해 문자열을 파싱하여 시간 객체로 변환한 후, 같은 방식으로 time.mktime() 함수를 적용하면 됩니다.

예제 코드

import time

my_time = time.strptime("01-01-18", "%d-%m-%y")
print(time.mktime(my_time))

실행 결과

문자열 "01-01-18"을 지정된 포맷(%d-%m-%y)에 맞춰 파싱한 결과, 다음과 같은 타임스탬프가 출력됩니다.

1514745000.0

정리

  • datetime 객체timetuple()로 구조체 시간을 얻은 뒤 time.mktime()에 전달
  • 문자열time.strptime()으로 먼저 파싱한 뒤 time.mktime()에 전달

이렇게 생성된 10자리 타임스탬프는 MySQL의 TIMESTAMP 컬럼이나 FROM_UNIXTIME() 함수와 함께 사용할 수 있어 데이터베이스 연동 시 매우 유용합니다.