18

datetime として定義された 1 つの列 'test_time' を持つテスト レコードのデータベースがあります。日付に従ってテスト結果をcsvにダンプしたいので、いくつの異なる日付があるかを照会したいと思います。私は今、次のものを持っています:

distinct_dates = list(session.query(Test_Table.test_time).distinct())

しかし、これにより、日付ではなく日時のリストが得られます。確かにPythonで変換できますが、sqliteを使用している場合。私はこれをしましたSELECT DISTINCT DATE(test_time) FROM Test_Table。sqlalchemy で同等のものを思いつくことができません。

4

1 に答える 1

39

それは、次のcast()式を使用することによるものです。

from sqlalchemy import cast, Date

distinct_dates = session.query(cast(Test_Table.test_time, Date)).distinct().all()

またはショートカット方法

distinct_dates = session.query(Test_Table.test_time.cast(Date)).distinct().all()

SQLiteを使用している場合は、これを試してください:

distinct_dates = session.query(func.DATE(Test_Table.test_time)).distinct().all()
于 2013-06-27T03:30:04.620 に答える