ホームページ > データベース > mysql チュートリアル > BETWEEN 句を使用しているにもかかわらず、SQLite クエリがすべての日付を返すのはなぜですか?

BETWEEN 句を使用しているにもかかわらず、SQLite クエリがすべての日付を返すのはなぜですか?

Patricia Arquette
リリース: 2025-01-13 10:49:42
オリジナル
475 人が閲覧しました

Why Does My SQLite Query Return All Dates Despite Using a BETWEEN Clause?

SQLite クエリが日付範囲条件を無視するのはなぜですか?

問題の説明:

SQLite データベースを使用して特定の日付範囲内のレコードをクエリすると、結果には、指定された範囲外の日付も含め、すべての日付が含まれます。使用されるクエリ ステートメントは次のとおりです:

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

問題の原因:

問題は日付の形式です。 SQLite では、YYYY-MM-DD 形式の日付が必要です (たとえば、「2011-11-01」から「2011-11-08」まで)。ただし、クエリで指定される日付形式は「MM/DD/YYYY」です。

クエリを実行するとき、SQLite は日付文字列を日付ではなくテキストとして解釈します。したがって、日付条件は無視され、実際の日付値に関係なく、「test」テーブル内のすべての行が取得されます。

解決策:

この問題を解決するには、日付文字列を YYYY-MM-DD 形式に変換します:

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

正しい日付形式を使用することで、SQLite は条件を正しく評価し、結果を指定された日付範囲内のレコードに制限できます。

以上がBETWEEN 句を使用しているにもかかわらず、SQLite クエリがすべての日付を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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