SQLite 日付範囲クエリのトラブルシューティング
一般的な SQLite クエリの問題には、「MM/DD/YYYY」形式の日付で BETWEEN
演算子を使用すると、必要な範囲ではなく予期せずすべての日付が返されることが含まれます。
問題: 日付の形式が正しくありません
SQLite では、日付を「YYYY-MM-DD」の形式にする必要があります。 データベースまたはクエリが別の形式 (「MM/DD/YYYY」など) を使用している場合、SQLite は日付を文字列として扱うため、誤った結果が生じ、テーブル内のすべての日付が選択されることがよくあります。
解決策: 一貫した日付形式
修正は簡単です。すべての日付で一貫した「YYYY-MM-DD」形式を保証します。 これは 2 つの方法で実現できます:
データベースの変更: strftime('%Y-%m-%d', date_column)
関数を使用して、データベースの列を正しい形式に更新します。
クエリの変更: 正しい形式を直接使用するように SQL クエリを変更します。 例:
<code class="language-sql">SELECT * FROM test WHERE date BETWEEN '2011-11-01' AND '2011-11-08';</code>
正しい日付形式を使用すると、BETWEEN
句が期待どおりに機能し、指定した範囲内の日付のみを正確に選択します。
以上がBETWEEN を使用した SQLite 日付範囲クエリですべての日付が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。