Как узнать среднее время в Ларавеле - PullRequest
0 голосов
/ 23 февраля 2019

Я хочу получить среднее время между временем начала и конца и где CUR-Time GroupBY имя пользователя я написал sql в laravel, он показывает какую-то ошибку, я не могу найти, что этопотому что я новичок в этом laravel, пожалуйста, помогите исправить эту ошибку sql, я отправляю my sql и сообщение об ошибке.

 $avagTime = DB::table( 'active_user' )
            ->select(DB::raw('AVG(TIME_TO_SEC(acu_et) - TIME_TO_SEC(acu_at))'))
            ->where (DATE('acu_at') == ('CURDATE()'))
            ->get();[![enter image description here][1]][1]

enter image description here

enter image description hereenter image description here

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019

Не лучше ли вывести логику оттуда?Я предпочитаю просто получать дату и время из БД и использовать Carbon для преобразования их в Unix timestamp.Затем используйте их как простые int.

0 голосов
/ 23 февраля 2019

Проблема в вашем предложении where.В построителе запросов Laravel есть метод whereDate () , который идеально подходит для этого:

$avagTime = DB::table('active_user')
    ->selectRaw('AVG(TIME_TO_SEC(acu_et) - TIME_TO_SEC(acu_at))')
    ->whereDate('acu_at', today())
    ->get();

NB Если вы хотите передать причину в виденеобработанный запрос, как у вас в вашем примере, вам нужно использовать что-то вроде whereRaw () или where().

0 голосов
/ 23 февраля 2019

Попробуйте этот код:

$currentTime = Carbon::now()->toDateTimeString();

$avagTime = DB::table( 'active_user' )
          ->select(DB::raw('AVG(TIME_TO_SEC(acu_et) - TIME_TO_SEC(acu_at))'))
          ->where ('acu_at', $currentTime)
          ->get();

Я думаю, это было бы полезно.Спасибо

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