วิธีใช้งูหลามdatetime.strftime(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')))
โซนเวลา
หากเขตเวลาเป็นปัญหาคุณสามารถกำหนดเขตเวลา MySQL สำหรับ UTC ได้ดังนี้:
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))