#php #mysql #laravel
Вопрос:
Итак, в настоящее время я пытаюсь добавить два часа к данным типа метки времени в phpMyAdmin. Функция находится ниже,
public function collection()
{ return Booking::select('id','place_id', 'payer_name', 'user_fullname', 'user_email', 'user_phone', 'user_no_of_guest', 'user_no_of_babies', 'user_checkin',
'user_checkout', 'is_approved', 'user_promo', 'user_payment_type', 'user_booking_tracking_id', 'created_at','paid_ammount')->get();
}
База данных выглядит так, и имя данных «created_at».
Есть ли способ добавить два часа непосредственно при сборе? Или я должен думать о чем-то другом?
Комментарии:
1. Обратите внимание, что в phpMyAdmin нет данных; это всего лишь административный инструмент. Вы можете напрямую добавить два часа к каждой метке времени, используя функции даты и времени, описанные в руководстве.
2. Моя цель состоит в том, чтобы добавить эти два часа только для этой функции, так как мне не нужно добавлять два часа при последующем извлечении данных.
3. Выберите необработанный
created_at INTERVAL 2 HOUR
вместо столбца.4. Если функция имеет отношение к проблеме, я предлагаю вам добавить текст функции в текст вопроса. Здесь фотографии редко приветствуются или полезны.
5. Изучение laravel.com/docs/8.x/queries#raw-expressions
Ответ №1:
Я решил проблему, используя приведенный ниже код, используя помощь людей в комментариях.
return Booking::select(
'id',
'place_id',
'payer_name',
'user_fullname',
'user_email',
'user_phone',
'user_no_of_guest',
'user_no_of_babies',
'user_checkin',
'user_checkout',
'is_approved',
'user_promo',
'user_payment_type',
'user_booking_tracking_id',
Booking::raw('(created_at INTERVAL 2 HOUR) AS created_at'),
'paid_ammount'
)->get();