【发布时间】:2016-04-15 21:01:55
【问题描述】:
我的字段date (varchar datatype) 采用自定义日期格式,即dd-mm-yyyy。
例如:01-01-2016
我想从数据库字段date 中获取特定日期之间的数据。假设输入数据存储在变量中:startDate & endDate。
我试过这个查询,但结果很奇怪。
$query = DB::table('test')->whereBetween('date', array($startDate, $endDate))->get();
我认为它失败了,因为我使用了自定义 date 格式。
如何解决?
@updated
假设我有这样的date
29-12-2015
29-12-2015
29-12-2015
30-12-2015
29-12-2015
01-01-2016
06-01-2016
我这样设置$startDate & $endDate
$startDate = "01-12-2015";
$endDate = "01-01-2016";
这个脚本甚至没有得到任何结果
$query = DB::table('test')->whereBetween('date', array($startDate, $endDate))->get();
但如果我使用
$startDate = "01-12-2015";
$endDate = "31-12-2015";
我得到了所有数据...这是错误的结果,因为 2016 data 不应该在范围内...有点像没有过滤
【问题讨论】:
-
你能发布预期的数据结果吗?
-
@jameshwartlopez 在我的
update section中我希望得到01-12-2015和01-01-2016之间的结果,其中来自顶部的6 个数据...06-01-2016不包括在内,因为它不在范围内 -
那么你使用 whereBetween 有什么问题?
-
@jameshwartlopez 我不知道为什么使用范围
01-12-2015和01-01-2016无法获得预期的结果....使用范围01-12-2015和@987654345 @我得到所有数据...就像没有过滤 -
这是因为您的日期数据类型是 varchar。尝试使用构建sql查询并运行它来测试。
标签: laravel laravel-4 laravel-query-builder