SQLite での正確な日付比較の確保
SQLite で日付文字列を直接比較すると、SQLite の内部でユリウス日番号システムが使用されているため、信頼性の低いクエリ結果が生成される可能性があります。この記事では、正確な日付を比較するための堅牢な方法について概説します。
SQLite は通常、日付をテキスト文字列として保存します。 ただし、これらの文字列を直接比較すると、矛盾が生じることがよくあります。正確な結果を保証するには、日付を YYYYMMDD 形式で保存することをお勧めします。
この形式により、標準 SQL 構文を使用したシンプルで信頼性の高い日付比較が可能になります。
<code class="language-sql">SELECT * FROM table_1 WHERE mydate >= '20090101' AND mydate < '20100101';</code>
このクエリは、mydate
が YYYYMMDD 形式の日付を含むテキスト フィールドであることを前提としています。 YYYYMMDD 形式は、時間表現の変動に起因する問題を回避します。
ユーザー エクスペリエンスを向上させるには、データベースを挿入する前にユーザー指定の日付を YYYYMMDD 形式に変換するデータ パーサーを実装することを検討してください。これにより、すべてのクエリにわたって一貫したデータ形式と信頼性の高い比較が保証されます。
以上がSQLite で日付を確実に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。