Как можно преобразовать SQL в Laravel SQL - PullRequest
0 голосов
/ 07 мая 2018

Я нахожу данные между текущей датой из базы данных и начальной и конечной датой из 2 атрибутов

this is database

и это sql код

select * from period WHERE
priceId = 1788749 AND
'2018-05-07 02:00:00' BETWEEN startPeriod AND endPeriod

но я не знаю, как я могу использовать в laravel

я пытаюсь

$now = Carbon::now()->toDateTimeString();
$prod =DB::table('period')->where('priceId','=', 1788749)
->wherebetween($now, ['startPeriod', 'endPeriod'])
->get();

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Прочитайте документацию здесь https://laravel.com/docs/5.6/eloquent

Практически приложение laravel использует eloquent в качестве пакета sql.Тот, который вы используете, является фасадом БД, который тоже подойдет.

, если перевести на eloquent, ваш запрос будет:

$prod = Period::where('priceId',1788749)->where('startPeriod','>',$now)->where('endPeriod','<',$now)->get()

startPeriod и endPeriod должны указывать дату, когда вы перенесете его в базу данных

Я не думаю, что вы можете использовать whereBetween, потому что в качестве первого параметра требуется имя столбца таблицы, а не динамическое значение

0 голосов
/ 07 мая 2018

Вы можете взглянуть на функцию diffInDays / diffInMonths / diffInYears (в соответствии с вашими требованиями), чтобы получить разницу между двумя датами.

Обязательно проанализируйте дату в соответствии с форматом углерода, используя это. $ convertDate = Carbon :: parse ($ yourDate);

http://carbon.nesbot.com/docs/

Счастливое кодирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...