使用Python方法datetime.strftime(format)
,其中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')))
时区
如果需要考虑时区,则可以按如下所示为UTC设置MySQL时区:
cursor.execute("SET time_zone = '+00:00'")
时区可以在Python中设置:
now = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)
MySQL可以使用以下格式识别DATETIME和TIMESTAMP值:
作为任一字符串 'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'
格式。这里也允许使用“宽松”语法:任何标点符号都可以用作日期部分或时间部分之间的分隔符。例如,“ 2012-12-31 11:30:45”,“ 2012 ^ 12 ^ 31 11 + 30 + 45”,“ 2012/12/31 11 * 30 * 45”和“ 2012 @ 12 @ 31 11” ^ 30 ^ 45'是等效的。
在日期和时间部分与小数秒部分之间唯一识别的分隔符是小数点。
日期和时间部分可以用T分隔而不是空格。例如,“ 2012-12-31 11:30:45”与“ 2012-12-31T11:30:45”等效。
如果字符串不带分隔符,则格式为“ YYYYMMDDHHMMSS”或“ YYMMDDHHMMSS”,但前提是该字符串应作为日期使用。例如,“ 20070523091528”和“ 070523091528”被解释为“ 2007-05-23 09:15:28”,但“ 071122129015”是非法的(具有无意义的分钟部分),并变为“ 0000-00-00 00”: 00:00'。
如果数字是日期,则以YYYYMMDDHHMMSS或YYMMDDHHMMSS格式表示。例如,将19830905132800和830905132800解释为“ 1983-09-05 13:28:00”。
%s
cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s , '%s')",("name", 4,now))