2016-05-24 12 views
1

名前と値のペアのセットとして情報を格納するテーブルがあります。いくつかの値は日付であると想定されています。文字は 'YYYY-MM-DD'のようにエンコードされていますが、どうにかしてテーブルに悪いデータがあります。悪いエントリをMySQLのコマンドラインクライアントからの日付に変換しようとすると、nullが返されます。しかし、私はMySQLdbはを使用してPythonプログラムを使ってこれを実行しようとすると、それはのような例外がスローされます。MySQLDbを使用して不正な日付値を扱う

OperationalError(1292年、 "不正な日時の値: '未定義-0-11/1971分の30'")

プログラムで不正な値を特定する方法、または例外をスローするのではなく変換結果をNULLにする方法を見つける必要があります。何か案は?

答えて

0

pythonのtry-catchブロックは、操作上のエラーを捕まえるというトリックを行う必要があります。 (ただし、日時の値が正しくないために操作上のエラーが発生していることを確認する必要があります)一般的なロジックは次のようになります。

try: 
    <datetime conversion here> 
except MySQLdb.OperationalError: 
    print "this value is bad!" 
+0

私のコマンドは、テーブル内の他の行を順番に処理することなく処理することができます。 – gmweinberg

関連する問題