首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL中插入Python datetime.datetime对象

在MySQL中插入Python datetime.datetime对象
EN

Stack Overflow用户
提问于 2009-07-16 17:29:49
回答 7查看 267.9K关注 0票数 135

我在MySQL表中有一个date列。我想在这个列中插入一个datetime.datetime()对象。我应该在execute语句中使用什么?

我试过了:

代码语言:javascript
复制
now = datetime.datetime(2009,5,5)

cursor.execute("INSERT INTO table
(name, id, datecolumn) VALUES (%s, %s
, %s)",("name", 4,now))

我收到一个错误:"TypeError: not all arguments converted during string formatting"我应该用什么来代替%s

EN

回答 7

Stack Overflow用户

发布于 2010-12-22 19:56:18

对于时间字段,请使用:

代码语言:javascript
复制
import time    
time.strftime('%Y-%m-%d %H:%M:%S')

我认为strftime也适用于datetime

票数 218
EN

Stack Overflow用户

发布于 2012-08-30 14:59:51

您最有可能获得TypeError,因为您需要用引号将日期列值括起来。

尝试:

代码语言:javascript
复制
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))

关于格式,我成功地使用了上面的命令(包括毫秒)和:

代码语言:javascript
复制
now.strftime('%Y-%m-%d %H:%M:%S')

希望这能有所帮助。

票数 45
EN

Stack Overflow用户

发布于 2009-07-16 09:39:15

尝试使用now.date()获取Date对象,而不是DateTime

如果这不起作用,那么将其转换为字符串应该是有效的:

代码语言:javascript
复制
now = datetime.datetime(2009,5,5)
str_now = now.date().isoformat()
cursor.execute('INSERT INTO table (name, id, datecolumn) VALUES (%s,%s,%s)', ('name',4,str_now))
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1136437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档