Освоение схемы Laravel Capsule: работа с DateTime и CURRENT_TIMESTAMP

В этой статье блога мы рассмотрим различные методы и приемы работы с DateTime и CURRENT_TIMESTAMP в схеме Laravel Capsule Schema. Laravel Capsule — это легкая библиотека базы данных, которая позволяет вам работать с необработанными SQL-запросами в ваших приложениях Laravel. Мы рассмотрим различные подходы к обработке полей DateTime и способы эффективного использования функции CURRENT_TIMESTAMP. Итак, приступим!

  1. Использование метода timestamp.
    Метод timestampв Laravel Capsule позволяет определить столбец как поле DateTime. Вот пример создания таблицы со столбцом created_at:
Capsule::schema()->create('users', function ($table) {
    $table->timestamp('created_at')->default(Capsule::raw('CURRENT_TIMESTAMP'));
});

В этом примере мы устанавливаем значение по умолчанию для столбца created_atна текущую временную метку с помощью функции CURRENT_TIMESTAMP.

  1. Использование метода defaultTo.
    Другой подход заключается в использовании метода defaultToдля установки значения по умолчанию для столбца DateTime равным CURRENT_TIMESTAMP:
Capsule::schema()->create('users', function ($table) {
    $table->dateTime('created_at')->defaultTo(Capsule::raw('CURRENT_TIMESTAMP'));
});

Метод defaultToустанавливает значение столбца по умолчанию для предоставленного выражения, которое в данном случае равно CURRENT_TIMESTAMP.

  1. Обновление существующих записей.
    Чтобы обновить существующие записи с использованием текущей временной метки, вы можете использовать метод updateвместе с функцией CURRENT_TIMESTAMP:
Capsule::table('users')->update(['updated_at' => Capsule::raw('CURRENT_TIMESTAMP')]);

В этом примере мы обновляем столбец updated_atтаблицы usersтекущей меткой времени с помощью функции CURRENT_TIMESTAMP.

  1. Получение записей с определенным диапазоном дат.
    Чтобы получить записи в определенном диапазоне дат, вы можете использовать метод whereBetween:
$startDate = '2022-01-01';
$endDate = '2022-12-31';
$users = Capsule::table('users')
    ->whereBetween('created_at', [$startDate, $endDate])
    ->get();

В этом примере мы извлекаем всех пользователей, значение created_atкоторых попадает между начальной и конечной датами.

Работа с DateTime и CURRENT_TIMESTAMP в схеме Laravel Capsule Schema проста и обеспечивает гибкость в управлении данными даты и времени в вашей базе данных. Используя такие методы, как timestamp, defaultToи update, вы можете эффективно обрабатывать операции, связанные с датами. Не забудьте использовать функцию CURRENT_TIMESTAMPдля установки значений по умолчанию или обновления существующих записей. С помощью этих методов вы можете уверенно управлять полями DateTime в своих приложениях на основе схемы Laravel Capsule Schema.