我试图从数据库表中获取两个不同日期之间的所有值。问题是我的日期列包含格式为“MM/DD/YYYY HH:MM”的字符串形式的日期(即 9/13/2012 13:15、10/14/2012 22:32、11/8/2012 12 :10 等)。我可以使用 SELECT 和 LIKE 查询来获取包含传入的任何日期字符串的所有行,但我需要选择特定范围内的所有行(例如 9/13/2012 和 9/15/2012)。我是否需要转换为日期格式才能完成此操作?
这是通过输入一个日期来工作的代码:
$result=mysql_query("SELECT * FROM data WHERE data_time RLIKE '^$date_range1'");
但我需要在 2 个日期之间进行选择。我尝试了这个,但它不起作用:
$result=mysql_query("SELECT * FROM data WHERE data_time RLIKE BETWEEN '^$date_range1%' and '^$date_range2%");
最佳答案
是的,您需要将日期转换为 date
或 datetime
类型。
否则排序将不起作用:作为文本,“11/02/2012”位于“12/03/1901”之前,因为“11”小于“12”。
关于php - 在mysql中的2个范围之间使用LIKE进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610651/