我只想获取本周周一到周五的记录,但我很难思考和研究如何做到这一点,我在互联网上找到了一些方法,但对于像我这样的新手来说很难理解,所以这是我的代码:
$myquery=DB::table('attendances')
->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
->where('user_id', '=', $employee->id)
//I want to do something like this one
->WHERE WEEK(`date`) = WEEK(NOW()
->orderBy('attendances.date','asc')->get();
我实现了一些这样的答案
$myquery=DB::table('attendances')
->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
->where("WEEKOFYEAR(`date`)", "=", "WEEKOFYEAR(NOW())")
->where('user_id', '=', $employee->id)
->orderBy('attendances.logon','asc')->get();
发布于 2014-11-30 11:26:23
您可以对两个Carbon
date实例使用whereBetween
:
->whereBetween('date', [
Carbon\Carbon::parse('last monday')->startOfDay(),
Carbon\Carbon::parse('next friday')->endOfDay(),
])
如果您想要查找当月的所有记录,请使用以下命令:
->whereBetween('date', [
Carbon\Carbon::now()->startOfMonth(),
Carbon\Carbon::now()->endOfMonth(),
])
发布于 2014-11-30 10:08:22
您将希望使用WEEKOFYEAR()
而不只是WEEK
,后者将获取一年中的当前周索引。因此,同一周中的两个日期将返回相同的WEEKOFYEAR
。在普通SQL中,它将如下所示:
... WHERE WEEKOFYEAR(`date`) = WEEKOFYEAR(NOW())
在laravel:
->where("WEEKOFYEAR(`date`)", "=", "WEEKOFYEAR(NOW())")
发布于 2014-11-30 10:10:45
我会尝试像这样的东西
->where('WEEK(FROM_UNIXTIME(`date`))', '=', 'WEEK(NOW())') ->where('DAYOFWEEK(FROM_UNIXTIME(`date`))', '>=', 2) ->where('DAYOFWEEK(FROM_UNIXTIME(`date`))', '<=', 6)
https://stackoverflow.com/questions/27209202
复制相似问题