I have a CLICK model that contains click information of users.
I want to get click data where specific date matched.
Like,
$date = ['09/08/2022', '09/16/2022', '03/08/2022']
I want that clicks which created_at are match with one element of $date array.
Laravel has ->whereIn() eloquent function to do almost same task, but in my case created_at and $date array element does not has same date format.
Note that: it is not ->whereBetween(), I want to match specific date contains in a $date array.
CodePudding user response:
Try this one :)
$arr = ['07/07/2022', '07/08/2022', '07/09/2022'];
$query->whereRaw("DATE_FORMAT(created_at, '%m/%d/%Y') IN('" . join("','", $arr) . "')");
CodePudding user response:
Assuming your created_at is a timestamp:
You can chain orWhereRaw()s with LEFT():
$myQuery
->whereRaw("LEFT(created_at, 10) = '2022-09-08'")
->orWhereRaw("LEFT(created_at, 10) = '2022-09-16'")
->orWhereRaw("LEFT(created_at, 10) = '2022-08-03'")
...
