Python 用 module, MySQLdb 改造

Python から MySQL に接続するには,MySQLdb を使う.おおむね問題ないのだけれど,Time 型の取り扱いが少々厄介.
というのは,MySQL で,Time 型はかなり柔軟になっていて,例えば,26:30:00(26 時 30 分 00 秒)のような時間を,Time 型で扱うことができる.でも,MySQLdb では field の型が Time 型の場合,23:59:59 までの時間しか扱えず,たとえば,上記のようなデータが保存されていた場合には,None で返ってくる(悲しすぎる)...
筆者は 24 時以降のデータを扱うことがたいへん多く,これではとても困る.そこで,24 時以降の場合,string 型で戻ってくるように改造してみた.
変更したのは次の箇所:(path は,MacOS X に準拠)
/Library/Python/2.3/MySQLdb/pytimes.py
69 行目付近:

  • 変更前:return None
  • 変更後:return "%s:%s:%s" % (h, m, s)

とりあえず,これでデータが欠損することが無くなったので,OK.


Click Here!