首頁 > 資料庫 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板