Gunakan metode Python datetime.strftime(format)
, di mana format = '%Y-%m-%d %H:%M:%S'
.
import datetime
now = datetime.datetime.utcnow()
cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, %s)",
("name", 4, now.strftime('%Y-%m-%d %H:%M:%S')))
Zona waktu
Jika zona waktu menjadi perhatian, zona waktu MySQL dapat diatur untuk UTC sebagai berikut:
cursor.execute("SET time_zone = '+00:00'")
Dan zona waktu dapat diatur dengan Python:
now = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)
MySQL mengenali nilai DATETIME dan TIMESTAMP dalam format berikut:
Sebagai string dalam format 'YYYY-MM-DD HH: MM: SS' atau 'YY-MM-DD HH: MM: SS'
. Sintaks "santai" juga diizinkan di sini: Karakter tanda baca apa pun dapat digunakan sebagai pemisah antara bagian tanggal atau bagian waktu. Misalnya, '2012-12-31 11:30:45', '2012 ^ 12 ^ 31 11 + 30 + 45', '2012/12/31 11 * 30 * 45', dan '2012 @ 12 @ 31 11 ^ 30 ^ 45 'setara.
Satu-satunya pembatas yang dikenali antara bagian tanggal dan waktu dan bagian pecahan detik adalah titik desimal.
Bagian tanggal dan waktu dapat dipisahkan oleh T daripada spasi. Misalnya, '2012-12-31 11:30:45' '2012-12-31T11: 30: 45' adalah setara.
Sebagai string tanpa pembatas dalam format 'YYYYMMDDHHMMSS' atau 'YYMMDDHHMMSS', asalkan string tersebut masuk akal sebagai tanggal. Misalnya, '20070523091528' dan '070523091528' diinterpretasikan sebagai '2007-05-23 09:15:28', namun '071122129015' ilegal (memiliki bagian menit yang tidak masuk akal) dan menjadi '0000-00-00 00: 00:00 '.
Sebagai angka dalam format YYYYMMDDHHMMSS atau YYMMDDHHMMSS, asalkan angka tersebut masuk akal sebagai tanggal. Misalnya, 19830905132800 dan 830905132800 diinterpretasikan sebagai '1983-09-05 13:28:00'.
%s
cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s , '%s')",("name", 4,now))