繁体   English   中英

转换字符串在Python中插入MySQL DB日期列日期

[英]Convert String In Python to insert into MySQL DB date column date

我有一个不寻常的日期字符串,我想插入MySQL数据库。

date = 'Thu, 14 Mar 2013 13:33:07 -0400'

这是insert语句

self.cursor.execute("INSERT INTO table1 (`DATE`)VALUES (%s);",(date))

当我这样做时它会在数据库中显示如下:

0000-00-00 00:00:00

即使我手动输入SQL,它也会以同样的方式显示出来。

如何将日期字符串转换为插入的mysql可读日期?

pip install python-dateutil

from dateutil.parser import parse
date = 'Thu, 14 Mar 2013 13:33:07 -0400'
parse(date).strftime("%Y-%m-%d %H:%M:%S")

此日期字符串采用RFC 2822日期格式 ,可以使用email.utils.parsedate (它是标准库的一部分)进行解析:

In [428]: import email.utils as eu

In [429]: eu.parsedate('Thu, 14 Mar 2013 13:33:07 -0400')
Out[429]: (2013, 3, 14, 13, 33, 7, 0, 1, -1)

获得datetime对象后,可以将该表单(无格式化)插入MySQL:

date = eu.parsedate('Thu, 14 Mar 2013 13:33:07 -0400')
self.cursor.execute("INSERT INTO table1 (`DATE`) VALUES (%s)",(date,))

注意: cursor.execute的第二个参数必须是序列。 因此,使用元组(date,)而不是日期时间对象(date)

此外,SQL字符串中不需要分号。

我没有足够的声誉来评论上面的问题,所以我会在这里给出答案。

如果在运行时遇到ImportError,则需要安装模块:

from dateutil.parser import parse

到这里下载解析器: http//labix.org/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b

接下来,解压缩文件夹并使用管理员权限打开cmd。 导航到该文件夹​​并键入:

python setup.py install

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM