【发布时间】:2015-11-10 08:57:52
【问题描述】:
我需要计算每条记录的开始日期偏移量;我需要计算每条记录的开始日期在最小/最低开始日期之后的天数。
我在 Laravel 4 中这样做。表是 mySQL。我真的更喜欢 Laravel 查询,但我也可以包含原始的 mySQL。
我的查询(它也选择了其他一些东西)不起作用
$tasks = DB::table('tasks')->select(array(DB::raw("TIMESTAMPDIFF(DAY, MIN(start), start) AS offset"), DB::raw("TIMESTAMPDIFF(DAY, start, end) AS length"), 'user_id', 'name', 'desc','start','end','finished'))->where('temp_id', $id)->orderBy('start')->get();
自我比较的“MIN(start)”似乎是问题所在。如何计算每条记录的开始日期在最小开始日期之后的天数?
【问题讨论】:
-
我在这里可能完全不合时宜,但
MIN()不是在一组记录中找到最小值的聚合函数吗?如果是这样,我认为在单行中的DATETIME字段上使用它是没有意义的。 -
我不能和任何 Laravel 说话,但这是很常见的 @TimLewis。例如,请参阅我写的这个答案here,但使用
max而不是min -
@Drew Laravel 的查询构建器是基本 SQL 语法的包装器,查看您的答案可以提供一些见解。我会在这里写一个快速的答案。