选择日期范围MySQL和日期\格式
我在使用MySQL选择日期范围时遇到了一个问题选择日期范围MySQL和日期\格式,mysql,date,date-format,Mysql,Date,Date Format,我在使用MySQL选择日期范围时遇到了一个问题 SELECT MvtDate,date_format(MvtDate,'%d-%m-%Y') FROM (`immmvt`) WHERE date_format(MvtDate,'%d-%m-%Y') BETWEEN '01-01-2010' AND '02-01-2010' mvtDate类型是日期,类似于2010-01-01 00:00:00 当我运行查询时,结果在几天和几个月内有效,但它也会显示其他年份的其他结果 如01-01-201
SELECT MvtDate,date_format(MvtDate,'%d-%m-%Y')
FROM (`immmvt`)
WHERE date_format(MvtDate,'%d-%m-%Y') BETWEEN '01-01-2010' AND '02-01-2010'
mvtDate
类型是日期,类似于2010-01-01 00:00:00
当我运行查询时,结果在几天和几个月内有效,但它也会显示其他年份的其他结果
如
01-01-2011
等您应该使用STR\u TO\u DATE
,因为您想将字符串
转换回日期
SELECT MvtDate, date_format(MvtDate,'%d-%m-%Y')
FROM `immmvt`
WHERE MvtDate BETWEEN STR_TO_DATE('01-01-2010','%d-%m-%Y') AND
STR_TO_DATE('02-01-2010','%d-%m-%Y')
仅供参考:DATE_FORMAT()将日期转换为格式化字符串表示形式。
STR_TO_DATE()将格式化字符串转换回日期
比较
DATE
time的日期比你正在尝试的更好。这是我找到的最好的答案,非常快。
FYI: DATE_FORMAT() converts date to formatted string representation.
STR_TO_DATE() converts formatted string back to date
SELECT MvtDate,date_format(MvtDate,'%d-%m-%Y')
FROM (`immmvt`)
WHERE date_format(MvtDate,'%d-%m-%Y') IN ('01-01-2010', '02-01-2010')