2024-05-11 09:15:27 发布
网友
我有一个不寻常的日期字符串要插入到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可读的插入日期?
此日期字符串位于RFC 2822 date format中,可以使用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,),而不是datetime对象(date)。
cursor.execute
(date,)
(date)
此外,在SQL字符串中不需要分号。
我没有足够的声誉来评论上面的问题,所以我把答案放在这里。
如果运行此程序时遇到重要错误,则需要安装模块:
from dateutil.parser import parse
转到此处下载解析器:http://labix.org/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b
接下来,提取文件夹并以管理员权限打开cmd。导航到文件夹并键入以下内容:
python setup.py install
pip安装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 date format中,可以使用email.utils.parsedate(标准库的一部分)进行分析:
一旦有了datetime对象,就可以将其以该格式(不带格式)插入到MySQL中:
注意:
cursor.execute
的第二个参数必须是序列。所以使用元组(date,)
,而不是datetime对象(date)
。此外,在SQL字符串中不需要分号。
我没有足够的声誉来评论上面的问题,所以我把答案放在这里。
如果运行此程序时遇到重要错误,则需要安装模块:
转到此处下载解析器:http://labix.org/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b
接下来,提取文件夹并以管理员权限打开cmd。导航到文件夹并键入以下内容:
pip安装python dateutil
相关问题 更多 >
编程相关推荐