SELECT NOW() AS current_datetime;
SELECT CURDATE() AS current_date;
SELECT CURTIME() AS current_time;
Форматирование даты
SELECT id,
DATE_FORMAT(order_date, '%d-%m-%Y') AS formatted_order_date
FROM orders;
SELECT id,
DATE_FORMAT(shipped_date, '%d/%m/%Y %H:%i:%s') AS formatted_shipped_date
FROM orders;
Разница между датами в днях
SELECT id,
DATEDIFF(shipped_date, order_date) AS days_to_ship
FROM orders;
Сдвиг даты на интервал
-- Дата 90 дней назад
SELECT DATE_SUB(CURDATE(), INTERVAL 90 DAY) AS past_date;
-- Дата через 51 день
SELECT DATE_ADD(CURDATE(), INTERVAL 51 DAY) AS future_date;
-- Тот же результат через оператор +
SELECT CURDATE() + INTERVAL 51 DAY AS future_date;
Извлечение частей даты
SELECT id,
YEAR(order_date) AS order_year,
MONTH(order_date) AS order_month,
DAY(order_date) AS order_day
FROM orders;
SELECT EXTRACT(YEAR FROM NOW()) AS current_year;
SELECT EXTRACT(MONTH FROM NOW()) AS current_month;
Преобразование времени в секунды и обратно
SELECT TIME_TO_SEC('02:30:00') AS seconds;
SELECT SEC_TO_TIME(9000) AS time_format;
Преобразование строки в дату
SELECT CAST('2024-08-25' AS DATE) AS converted_date;
SELECT CAST('2024-08-25 14:30:00' AS DATETIME) AS converted_datetime;
Текстовый отчёт с числом и датой
-- Неявное преобразование числа в строку внутри CONCAT
SELECT CONCAT('Total sales: $', 12345.67) AS sales_report;
-- Явное преобразование и форматирование даты
SELECT CONCAT('Клиент с id ', CAST(customer_id AS CHAR),
' сделал заказ ', DATE_FORMAT(order_date, '%d.%m.%Y')) AS report
FROM orders;