0

特定の日付セットのデータを取得している SQLite データベースがあります (2011 年 1 月 1 日から 2011 年 1 月 1 日までとします)。このクエリを SQL に実装する最良の方法は何ですか。理想的には、次の行を実行したいと思います。

SELECT * FROM database where start_date < date_stamp and end_date > date_stamp

日付を文字列として保存すると、これは明らかに機能しません。

私の解決策 (面倒だと思うので、別の解決策を期待しています) は、日付を次の形式の整数に変換することです: YYYYMMDD これにより、上記の行を (理論的に) 実行できるようになります。より良い方法はありますか?

Python sqlite3 の使用

SQLiteではなくSQLを使用していた場合、答えは異なりますか

4

2 に答える 2

0

サポートされている日付/時刻データ型のいずれかに日付を格納する必要があります。そうすれば、変換なしで比較が機能し、組み込みの日付/時刻関数を使用できるようになります。(文字列を使用するか数字を使用するかは、速度には関係ありません。データベースのパフォーマンスは、必要な I/O の量によって決まります。)

組み込みの日付データ型を持つ他の SQL データベースでは、それを使用できます。(ただし、これは通常、移植可能ではありません。)

于 2013-10-25T08:04:06.410 に答える
0

SQLlite の場合、int と比較すると、文字列や日付と時刻の操作よりもはるかに高速であるため、これが最良のアプローチです。

于 2013-10-25T03:48:55.607 に答える