我制作了一个概述页面,该页面显示了某个Web应用程序中的所有班次(如图所示)。
如图所示,我已经在视觉上进行了两个输入,用户可以在其中指定发生轮换的年份和星期。但是,我的Shift表当前由DateTime格式的开始时间和结束时间组成,例如2020-01-29 15:00:00。
以这种方式过滤这些条目的最佳方法是什么?
答案 0 :(得分:1)
尝试此SQL查询:
SELECT *
FROM your_table
WHERE YEAR(CREATED_DATE) = 2020 AND WEEK(CREATED_DATE) = 5;
答案 1 :(得分:1)
您可以使用sql原始查询来过滤带有年份和星期编号的结果。 只需在服务器上使用过滤器参数(年,周号)发送正确的ajax请求即可 例如:如果用户输入2020年和第34周。
$data = YourModel::query()
->where(...)
->whereRaw('YEAR(created_at) = ?', [$request->year])
->whereRaw('DAYOFYEAR(created_at) BETWEEN ? AND ?', [7 * ($request->weeknumber - 1), 7 * $request->weeknumber])
->get();
希望这对您有帮助