Не отрабатывает сравнение по времени в MySQL через PHP

95
19 февраля 2021, 23:50
$session = DB::table('test_sessions')
    ->select('id as session_id')
    ->where('test_sessions.test_id', '=', $request->get('test_id'))
    ->where('test_sessions.user_id', '=', Auth::user()->id)
    ->whereDate('test_sessions.end_at', '>=', Carbon::now('Europe/Moscow')) // Условие не отрабатывает.
    ->get();

Я все равно получаю запись, хотя время end_at уже вышло. Если заменить Carbon::now('Europe/Moscow') на NOW(), тот же результат.

end_at - поле типа datetime;

Answer 1

Carbon::now('Europe/Moscow')->format('Y-m-d H:i:s') так правильно, в первом случае у вас объект Карбон, база явно о таком формате времени не знает

Answer 2

Можно также использовать хелперы now(), today()

->whereDate('test_sessions.end_at', '>=', now('Europe/Moscow'))

В этом случаи также все должно работать;

READ ALSO
Рекурсивное вычитание (PHP)

Рекурсивное вычитание (PHP)

Есть функция с рекурсивным вычитаниемНа каждой рекурсии появляется промежуточный ответ (0, 1, 1 и 2)

129
Командная разработка сайтов [закрыт]

Командная разработка сайтов [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

104
JPA + Postgres Refcursor return error

JPA + Postgres Refcursor return error

Пытаюсь получить курсор из процедуры, но почему-то получаю ошибку

132
Методы Scanner и проверка

Методы Scanner и проверка

пишу описание к дипломному проекту хотелось бы у вас уточнить правильность моей информации по Java, знаю как работает, а вот описать правильно...

103