Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择日期范围MySQL和日期\格式_Mysql_Date_Date Format - Fatal编程技术网

选择日期范围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

我在使用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-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')