Workbench_ODBC接続のクエリで、MySQLの日付関数は使えるか

ユーザー09266
編集済: 5月 2023 仲間に相談

WorkbenchのODBC接続で、指定DBのデータを毎日アップロードするJobを組んでいます。

この指定DBが非常に重く、アップロード完了まで半日程度かかってしまっております。


必要なデータは、DB上の更新日が最新のレコードのみなのですが、

高速化のための方法はなにかないか調べていたところ、Queryで日付指定したら数秒でアップロードできることに気づきました。


ただ、MySQLの関数で使えるものに制約があるのか、日付を直接指定(Ex.WHERE 日付 = '2021-11-30')のような方法だと動きますが、ちょっと細かい指定(Ex.WHERE DATEDIFF(CURRENTDATE(),日付) < 3)をすると動かないようです。


「DBから更新日が3日以内のデータを毎日取得する」という作業がしたいのですが、これはWorkbench上で可能なのでしょうか。

また、上記ができなくても、大量データを高速でULするための方法はなにかあるのでしょうか。


よろしくお願いいたします。

タグ付けされた:

答え

  • @ユーザー09266

    投稿ありがとうございます。

    MySQLをご利用とのことですので、「CURRENTDATE()」ではなく「current_date()」を利用すれば動作するかと思います。

    以下のSQLでエラーなく実行可能でした。

    例)

    SELECT * FROM testdb.table1 where DATEDIFF(current_date(),`date`) < 3;

  • Matz様

    早速ご返信いただきありがとうございます!!

    確認してみます!