2016-06-13 2 views
0

Привет, я пытаюсь выполнить запрос к моей базе данных и получать значения только за текущий месяц.Запрос Laravel MySQL только для этого месяца

->whereRaw('CompletedDate LIKE MONTH(now())') 
->whereRaw('CompletedDate >= curdate() - INTERVAL 1 MONTH') 
->where('CompletedDate', 'Like', 'date("Y-m")') 

Это должны быть значения этого месяца. Если я использую INTERVAL 1 МЕСЯЦ, он показывает мне записи за 1 месяц. мне нужно только для этого текущего месяца

+0

'MONTH (now()' Я думаю, что здесь ошибка, вы можете попробовать с помощью MONTH (now()) ' – GONG

ответ

1

Вы должны сделать это без использования whereRaw и воспользоваться библиотеками, которые предназначены для вас в Laravel.

->where('CompletedData', '>=', \Carbon\Carbon::now()->startOfMonth()); 

Пока ваш datetimes соответствовать правильно, то это должно быть соответствующее решение.

0

Вы можете использовать

SELECT CompletedDate FROM table WHERE CompletedDate >= (CURDATE()-INTERVAL 1 MONTH);

ПО Laravel использовать

->whereRaw('CompletedDate >= (CURDATE()-INTERVAL 1 MONTH)')

Смежные вопросы