2017-01-04 8 views
0

時刻と日付を時間なしで比較するクエリを作成するには、助けが必要です。私はアクセスdb(pypyodbc)でPythonを使用しています。日付と時間のない日付と時間を比較するクエリ - Pythonのアクセスデータベースを使用

データベースには、日付/時刻(時間を含む)を含む列があり、Pythonには(時間のない)datetimeオブジェクトがあります。

2つの日付だけを比較するSQLクエリを作成したいと思います。例については

:それは動作しませんので

cur.execute("SELECT * FROM MDSSDB WHERE [ValidStartTime] = #2016-05-17#") 

ValidStartTimeは時間を含んでいます。 ValidStartTimeからの日付だけが必要です。

答えて

0

日付コンポーネント(TimeValueは時間コンポーネントの対応物)のみを抽出するMS AccessのDateValue関数を使用することを検討してください。

また、Access '#フォームに連結する必要なくPython環境との統合を向上させるために、日付の値をパラメータとして渡すことを検討してください。以下のアイテムのタプルとしてパラメータを渡し:

from datetime import datetime 

... 
cur.execute("SELECT * FROM MDSSDB WHERE DateValue([ValidStartTime]) = ?", (datetime(2016, 5, 17),)) 
+0

'WHERE DATEVALUE([ValidStartTime])は' [検索引数可能](https://en.wikipedia.org/wiki/Sargableではないことを言及する価値があるかもしれません)ので、 'ValidStartTime'にインデックスがあっても、クエリは常にテーブルスキャンを行います。 –

+0

素早くお返事ありがとうございます! DateValueを使用してキーです... – Yotam

関連する問題