日期与dd.mm.yyyy之间的SQL仅在

时间:2017-04-19 12:55:33

标签: mysql sql

我想使用Datepicker来选择数据库中的特定条目。

我面临的问题是,我从查询中获得的条目仅按日期的日期部分进行排序。

我使用日期格式(数据库中的varchar字段):

*dd.mm.yyyy hh:mm ($date = date("Y-m-d") . ' ' . date("H:i");)* 

例如:

 01.04.2016
 10.04.2016
 11.04.2016
 01.04.2017
 10.04.2017
 11.04.2017

获取条目的查询:

SELECT *
FROM order_date
WHERE date >= '10.04.2017' AND date <= '10.04.2017'

现在我希望只获得匹配的条目,但是 查询的结果是从第10天或第11天开始的所有四个表条目。其中两个是在2016年。

正如我在其他帖子中看到的那样,如果日期是用yyyy-mm-dd或yyyymmdd设置的话,XX和YY之间的 ,但问题是我有一个大约有20k条目的数据库我需要一个日期选择器,所以我宁愿使用日期的givin格式而不重写所有条目。

是否有可能在dd.mm.yyyy格式之间获得一个日期选择器?

任何高度关注的帮助

4 个答案:

答案 0 :(得分:1)

您可以将列标记为DATE,并使用ORDER BY子句。

答案 1 :(得分:1)

尝试这样的事情,

STR_TO_DATE('10.04.2017', '%d.%m.%Y')

SELECT *
FROM order_date
WHERE date >= STR_TO_DATE('10.04.2017', '%d.%m.%Y') AND date <= STR_TO_DATE('10.04.2017', '%d.%m.%Y')

答案 2 :(得分:1)

使用STR_TO_DATE功能可能会有帮助。

STR_TO_DATE('10.04.2017','%d.%m.%Y')

答案 3 :(得分:1)

围绕这个想法怎么样?

SELECT * 
FROM Mytable WHERE date
                 BETWEEN CONVERT(datetime,'10.04.2017',104 ) 
                     AND CONVERT(datetime,'10.04.2017',104 )