Добавьте два часа к данным, взятым из базы данных MySQL

#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();