簡體   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