[英]How to Query between a date range in MySQL
我在查詢
SELECT * FROM tempLog WHERE date BETWEEN '23-03-2017' AND '02-04-2017'
結果為空。 如何解決這個問題。 但
SELECT * FROM tempLog WHERE date BETWEEN '23-03-2017' AND '30-03-2017'
給我正確的結果。 注意:-tempLog是表名。
您應該以date
格式或至少正確格式的字符串(YYYY-MM-DD)存儲日期。
現在,您可以使用str_to_date
將字符串轉換為日期並進行比較:
select *
from tempLog
where str_to_date(date, '%d-%m-%Y') between '2017-03-23' and '2017-04-02';
但是請注意,這將妨礙優化器在列上使用索引(如果有)。
解決此問題的正確方法是修復表結構。
根據文檔 ,您應該在編寫日期時使用以下格式: 'YYYY-MM-DD'
(盡管它表示在某些情況下可能接受'YYYYMMDD'
甚至是YYYYMMDD
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.