Laravel Query Builder заказ по времени становится временем UTC - PullRequest
0 голосов
/ 23 октября 2019

У меня была некоторая помощь по сети, и я изменил код, чтобы получить нужный вывод. Но когда я отлаживаю запрос, он показывает другой элемент.

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

Я пытался преобразовать его в datetime, но все равно не получилось.

$user = DB::table('users')
       ->join('user_attendance', function($join)
           {
            $join->on('users.user_id', '=', 'user_attendance.user_id')
            ->whereBetween('user_attendance.server_time', ["2019-10-01 00:00:00", "2019-10-01 23:59:59"]);
           })
           ->select('users.user_id', 'users.username',
                    DB::raw(
                        'min(case when user_attendance.action = "IN" then date(user_attendance.server_time) end) `Date`,
                         min(case when user_attendance.action = "IN" then time(user_attendance.server_time) end) `IN`,
                         min(case when user_attendance.action = "OUT" then time(user_attendance.server_time) end) `OUT`'
                        )
                    )
           ->groupBy('users.user_id', 'users.username', date('user_attendance.server_time'))
           ->orderBy('users.user_id')
           ->orderBy(date('user_attendance.server_time'))
           ->dd();

На самом деле он был создан на mysql, как показано ниже (он работает), и я просто преобразовал его в запрос laravel

select 
    u.user_id,
    u.username,
    min(case when a.action = 'IN' then date(a.server_time) end) `Date`,
    min(case when a.action = 'IN' then time(a.server_time) end) `IN`,
    max(case when a.action = 'OUT' then time(a.server_time) end) `OUT`
from 
    users u
    inner join user_attendance a on u.user_id = a.user_id AND  (a.server_time BETWEEN '2019-10-01 00:00:00' AND '2019-10-15 23:59:59')
group by
    u.user_id,
    u.username,
    date(a.server_time)
order by
    u.user_id,
    date(a.server_time)

Ошибка кода над ним это

Это как в порядке по и сгруппировать по -> дата (a.server_time)

становится так

00000024UTCWed, 23 Oct 2019 06:00:24 +0000_am3131UTC1023am102019-10-23T06:00:24+00:00UTC. 24UTCWed, 23 Oct 2019 06:00:24 +0000000UTCWed, 23 Oct 2019 06:00:24 +0000_310010UTC

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