Utilice el método Python datetime.strftime(format)
, donde formato = '%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')))
Zonas horarias
Si las zonas horarias son una preocupación, la zona horaria de MySQL se puede configurar para UTC de la siguiente manera:
cursor.execute("SET time_zone = '+00:00'")
Y la zona horaria se puede configurar en Python:
now = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)
MySQL reconoce los valores DATETIME y TIMESTAMP en estos formatos:
Como una cadena en formato 'AAAA-MM-DD HH: MM: SS' o 'AA-MM-DD HH: MM: SS'
. Aquí también se permite una sintaxis “relajada”: cualquier carácter de puntuación puede usarse como delimitador entre partes de fecha o partes de tiempo. Por ejemplo, '2012-12-31 11:30:45', '2012 ^ 12 ^ 31 11 + 30 + 45', '2012/12/31 11 * 30 * 45' y '2012 @ 12 @ 31 11 ^ 30 ^ 45 'son equivalentes.
El único delimitador reconocido entre una parte de fecha y hora y una fracción de segundos es el punto decimal.
Las partes de fecha y hora pueden estar separadas por una T en lugar de un espacio. Por ejemplo, '2012-12-31 11:30:45' '2012-12-31T11: 30: 45' son equivalentes.
Como una cadena sin delimitadores en formato 'AAAAMMDDHHMMSS' o 'AAMMDDHHMMSS', siempre que la cadena tenga sentido como fecha. Por ejemplo, '20070523091528' y '070523091528' se interpretan como '2007-05-23 09:15:28', pero '071122129015' es ilegal (tiene una parte de minutos sin sentido) y se convierte en '0000-00-00 00: 00:00 '.
Como un número en formato AAAAMMDDHHMMSS o AAMMDDHHMMSS, siempre que el número tenga sentido como fecha. Por ejemplo, 19830905132800 y 830905132800 se interpretan como '1983-09-05 13:28:00'.
%s
cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s , '%s')",("name", 4,now))