Mysql 在一组日期之间搜索一个日期
我的表名是client_details,我的日期字段包含一组日期,如Mysql 在一组日期之间搜索一个日期,mysql,sql,Mysql,Sql,我的表名是client_details,我的日期字段包含一组日期,如 03/03/2015,04/13/2015,05/11/2015,06/08/2015,09/04/... 03/18/2015,04/28/2015,05/26/2015,06/23/2015,09/19/... 03/20/2015,04/30/2015,05/28/2015,06/25/2015,09/21/... 03/26/2015,05/06/2015,06/03/2015,07/01/2015,09/27/...
03/03/2015,04/13/2015,05/11/2015,06/08/2015,09/04/...
03/18/2015,04/28/2015,05/26/2015,06/23/2015,09/19/...
03/20/2015,04/30/2015,05/28/2015,06/25/2015,09/21/...
03/26/2015,05/06/2015,06/03/2015,07/01/2015,09/27/...
03/26/2015,05/06/2015,06/03/2015,07/01/2015,09/27/...
03/06/2015,04/16/2015,05/14/2015,06/11/2015,09/07/...
03/13/2015,04/23/2015,05/21/2015,06/18/2015,09/14/...
04/16/2015,05/27/2015,06/24/2015,07/22/2015,10/18/...
03/03/2015,04/13/2015,05/11/2015,06/08/2015,09/04/...
03/04/2015,04/14/2015,05/12/2015,06/09/2015,09/05/...
03/19/2015,04/29/2015,05/27/2015,06/24/2015,09/20/...
我想搜索一个介于“2015年3月26日”和“2015年5月12日”之间的日期。如何编写查询?您可以尝试以下操作:
SELECT * FROM client_details WHERE `DateField` BETWEEN '03/26/2015' AND '05/12/2015';
编辑:-
因此,您的注释显示您是通过用逗号分隔日期来存储日期的。我强烈反对这种做法,并建议你改变桌子的设计。这是一种糟糕的存储日期的方法
原因:
@菲奥娜:-结果是什么?@Fiona:-给我的答案添了一把小提琴。据我所知,它正在按照你的预期结果工作。请告诉我缺少什么?日期字段似乎包含许多逗号分隔的日期。@Fiona:-为什么要这样存储日期?@Fiona:-我认为您可以将它们存储在不同的行中,因为这将在许多方面帮助您,包括创建这样的查询。不推荐使用上述列存储日期的方法,这样将来可能会给您带来很大的麻烦。这只是一个提示。你是说你将日期作为逗号分隔的列表存储在一列中吗?@GarethD是的,我这样存储为什么?关系数据库的本质是,您不需要像这样存储数据,您可以创建一个具有一对多关系的新表,并在具有datetime类型的列中每行存储一个日期。然后,您就有了一个非常简单的查询,它可以正确地使用索引,并且不需要转换或昂贵的拆分操作。我已经给出了一个示例模式,并对其进行了查询-我建议您更改它,而不是试图绕过您的设计。