5

MySQLDBに挿入したい異常な日付文字列があります。

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

そしてここに挿入ステートメントがあります

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

私がこのようにそれをするとき、それは次のようにデータベースに現れます:

0000-00-00 00:00:00

SQLを手動で入力しても、同じように表示されます。

日付文字列をmysqlで読み取り可能な日付に変換して挿入するにはどうすればよいですか?

4

3 に答える 3

7

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")
于 2013-03-15T00:17:37.560 に答える
4

この日付文字列はRFC2822日付形式であり、 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)

日時オブジェクトを取得したら、その形式で(フォーマットせずに)MySQLに挿入できます。

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

注:の2番目の引数cursor.executeはシーケンスである必要があります。したがって(date,)、datetimeオブジェクトの代わりにタプルを使用して(date)ください。

また、SQL文字列にセミコロンは必要ありません。

于 2013-03-15T00:28:29.003 に答える
3

上記の質問にコメントするのに十分な評判がないので、ここに答えを入れます。

これを実行しているときにImportErrorが発生した場合は、モジュールをインストールする必要があります。

from dateutil.parser import parse

パーサーをダウンロードするには、ここにアクセスしてください:http: //labix.org/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b

次に、フォルダを抽出し、管理者権限でcmdを開きます。フォルダに移動して、次のように入力します。

python setup.py install
于 2013-12-31T17:18:41.423 に答える