ホームページ > データベース > mysql チュートリアル > SQLite 日付範囲クエリが予期しない結果を返すのはなぜですか?

SQLite 日付範囲クエリが予期しない結果を返すのはなぜですか?

Patricia Arquette
リリース: 2025-01-13 08:35:42
オリジナル
369 人が閲覧しました

Why Does My SQLite Date Range Query Return Unexpected Results?

日付の形式が正しくないと SQLite 日付範囲クエリで問題が発生する

SQLite データベースに特定の日付範囲内のデータをクエリするときによく発生する問題は、クエリが指定された範囲を無視してすべての日付を返すことです。 これは多くの場合、SQLite の日付形式に関する誤解から生じます。

SQLite では、日付を YYYY-MM-DD 形式にする必要があります。 「11/1/2011」や「11/8/2011」などの他の形式を使用したクエリは、日付ではなくテキスト文字列として扱われます。

これにより、次のようなクエリが予期せぬ動作をすることになります:

<code class="language-sql">SELECT * FROM test WHERE date BETWEEN '11/1/2011' AND '11/8/2011'</code>
ログイン後にコピー

SQLite は '11/1/2011' と '11/8/2011' を文字列として扱うため、BETWEEN 演算子はそれらを辞書編集的に (テキストとして) 比較します。 クエリは、実際の日付に関係なく、date 列にこれらの文字列が含まれる行を返します。

解決策は、データベース内のすべての日付とクエリが YYYY-MM-DD 形式に厳密に従っていることを確認することです。これにより、SQLite は日付を正しく解釈し、日付範囲の正確な結果を返すことができます。

以上がSQLite 日付範囲クエリが予期しない結果を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート