DBはmysql
pythonのプログラムで、実装してます。
次のようなテーブルにおいて、特定の日付のデータのみを取得したいです。
hogesテーブル created_at 2016-05-20 03:39:43 2016-05-29 03:29:43 2016-05-29 03:39:43 2016-05-30 03:39:43
また、これはバッチ処理として実行します。(一日一回か、週に一度実行することを想定してます。)
そのため、特定の日付というのはバッチ処理の実行日時になります。
今回は仮に、2016-05-20のデータのみを取得したいとします。
SQLで考えると、以下のようなSQLを生成するのかなと思いました。
SELECT `hoges`.* FROM `hoges` WHERE (created_at between "2016-05-20 00:00:00" and "2016-05-20 23:59:59");
尚、mysql.connectorというライブラリを使っておりますが、
もっといいライブラリがありましたら、そちらを使おうと思います。
http://qiita.com/mima_ita/items/9a5ab3b45c7575776b06
そこで質問ですが
・バッチ処理の実行した日付の範囲内のデータを取得する場合、
pythonではどのように実装すればいいのでしょうか?
・上で記述したような生のsqlだと、冗長な気がしますが、もっとスッキリとした実装方法がありましたら、
ご指摘頂けますと幸いです。
以上よろしくお願いします。
補足
pythonでのmysqlの実行の仕方は以下の方法であれば、知っております。
cnn = mysql.connector.connect(host='localhost', port=3306, db='Sample001', user='root', passwd='root', charset="cp932") cur = cnn.cursor() #試験データの整理 pref_cd = 100 cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= %s""" , (pref_cd,))
今回わからないのは、
・バッチ処理の実行した日付の範囲内のデータを取得するという処理をSQLもしくは、pythonで実現する方法
です。
ごちゃごちゃと書いてしまい、ややこしくなってしまいました。
よろしくお願いします。