我的数据库中的日期存储为dd / mm / YYYY
如何构建一个简单的mySQL查询来拉取某个范围内的日期:
e.g。
SELECT * FROM metric WHERE date BETWEEN '31/01/2016' AND '01/02/2017'
答案 0 :(得分:3)
您可以使用str_to_date
但请记住,现在服务器无法在日期列上使用索引(如果有)。
select *
from metric
where str_to_date(date,'%d/%m/%Y') between '2016-01-31'
and '2017-02-01'
最好将日期存储为日期,或者如果字符串则以标准格式yyyy-mm-dd存储。
答案 1 :(得分:1)
您应该执行以下操作:
将包含日期字符串的所有列更新为日期列
UPDATE metric SET `dateColumn` = str_to_date(`dateColumn`,'%d/%m/%Y');
更改表格
ALTER TABLE metric MODIFY `dateColumn` DATE;
修改代码以将有效日期插入mysql
为您的任务使用内置的mysql日期函数
SELECT * FROM metric WHERE date BETWEEN '2016-01-31' AND '2017-02-01'