Python/MySQL の日時形式に問題があります。
次のスクリプトを使用して日時を計算します (Python 辞書によって供給されます)。
tempDate = str(eachday.get("date").get("year")).zfill(4) + "-" +
str(eachday.get("date").get("month")).zfill(2) + "-" +
str(eachday.get("date").get("day")).zfill(2) + " " +
str(eachday.get("date").get("hour")).zfill(2) + ":" +
str(eachday.get("date").get("min")).zfill(2) + ":" +
str(eachday.get("date").get("sec")).zfill(2)
のような値が得られます2012-04-02 04:04:23
。
問題なく MySQL に挿入できます。
sql.execute("""INSERT INTO `db`.`table`(`id`, `fk_id`, `time`, `field1`, `field2`) VALUES (NULL, %s, %s, %s, %s);""", (fk_value, tempDate, value1, value2))
DB_CONN.commit()
しかし、その日時で何かを削除しようとすると、
sql.execute("""DELETE FROM `db`.`table` WHERE `time` = "%s";""", (tempDate))
DB_CONN.commit()
不正な日時値に関する警告を返します。
Warning: Incorrect datetime value: ''2012-07-17 23:00:00'' for column 'time' at row 1
Pythonで日時で削除するにはどうすればよいですか? 同じ変数 (何も変更されていない) を挿入すると完全に機能するため、これは特に混乱を招きます。