← К оглавлению занятия

🏠 Домашнее задание

⚡ Кратко: домашнее задание

  1. Возраст в секундах.
  2. Дата через 51 день.
  3. День недели для этой даты.
  4. transaction_created_date + 3 часа.
  5. Текстовое сообщение о заказе двумя способами.
  6. Отформатировать стиль запросов.
  7. Сохранить в .sql.

🏠 Домашнее задание

Для выполнения домашнего задания используется база данных с доступом на чтение: hostname: ich-db.edu.itcareerhub.de, username: ich1, password: password.

1

Задание 1

Выведите ваш возраст на текущий день в секундах.

2

Задание 2

Выведите, какая дата будет через 51 день.

3

Задание 3

Отформатируйте предыдущий запрос: выведите день недели для той даты. Используйте документацию MySQL.

4

Задание 4

Подключитесь к базе данных northwind. Выведите столбец с исходной датой создания транзакции transaction_created_date из таблицы inventory_transactions, а также столбец, полученный прибавлением 3 часов к этой дате.

5

Задание 5

Выведите столбец с текстом 'Клиент с id <customer_id> сделал заказ <order_date>' из таблицы orders. Запрос написать двумя способами — с использованием неявных преобразований, а также с указанием изменения типа данных для столбца customer_id.

Внимание! В MySQL функция CAST не принимает VARCHAR в качестве параметра для длины. Вместо этого нужно использовать CHAR для указания длины.

6

Задание 6

Отформатируйте стиль написания запросов.

7

Задание 7

Сохраните запросы в виде файла с расширением .sql и загрузите на платформу.

📝 Пошаговое решение

1

Шаг 1 — возраст в секундах

Замените дату рождения на свою.

SELECT TIMESTAMPDIFF(SECOND, '1978-04-08 08:00:00', NOW()) AS my_age_seconds;
2

Шаг 2 — дата через 51 день

SELECT CURRENT_DATE + INTERVAL 51 DAY AS date_now_plus_51_day;
3

Шаг 3 — день недели

SET lc_time_names = 'ru_RU';

SELECT DATE_FORMAT((CURRENT_DATE + INTERVAL 51 DAY), '%W') AS day_of_week_now_plus_51_day;
4

Шаг 4 — добавление 3 часов к дате транзакции

USE northwind;

SELECT transaction_created_date,
       transaction_created_date + INTERVAL 3 HOUR AS plus_3_hour
FROM inventory_transactions;
5

Шаг 5 — текстовое сообщение двумя способами

-- Способ 1: неявные преобразования
SELECT CONCAT('Клиент с id ', customer_id,
              ' сделал заказ ', order_date) AS text
FROM orders;

-- Способ 2: явное приведение типов
SELECT CONCAT('Клиент с id ', CAST(customer_id AS CHAR),
              ' сделал заказ ', DATE_FORMAT(order_date, '%d.%m.%Y')) AS text
FROM orders;
6

Шаг 6 — форматирование стиля

Приведите запросы к единому стилю: ключевые слова заглавными буквами, каждое выражение на отдельной строке, алиасы осмысленные.

7

Шаг 7 — сохранение файла

Сохраните все запросы в файл homework_3.sql и загрузите на платформу.

✅ Проверка

  1. В задании 1 результат — целое число секунд.
  2. В задании 2 результат имеет тип даты.
  3. В задании 3 день недели выводится на выбранном языке.
  4. В задании 4 оба столбца содержат дату и время, второй сдвинут на 3 часа вперёд.
  5. В задании 5 второй способ использует CAST(customer_id AS CHAR), а не VARCHAR.
  6. Все запросы отформатированы и сохранены в файл homework_3.sql.