EXCEL16 мая 2023 г.

Sql вычесть дату из даты

Автор
Ненашев А.
На чтение
5-10 минут
Дата обновления
11.07.2024
Старт:c 13 ноября
Срок обучения:0 месяцев
Excel и Google-таблицы для управления финансами
Курс «Excel и Google-таблицы для управления финансами» поможет вам освоить востребованные инструменты для эффективного контроля и анализа личных или бизнес-финансов. Вы получите практические навыки автоматизации расчётов и построения финансовых отчётов, научитесь визуализировать данные для принятия верных решений. Вас ждут реальные кейсы, задания для портфолио, поддержка экспертов и сертификат по итогам обучения!
Подробнее
36 000 ₽ 90 000 ₽
3 000 ₽/мес рассрочка

Формат даты и времени

Формат даты MySQL поддерживает несколько форматов даты и времени. Их можно определить следующим образом:

ДАТА — сохраняет значение даты в формате ГГГГ-ММ-ДД. Например, 23.10.2008.
DATETIME — сохраняет значение даты и времени в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС. Например, 2008-10-23 10:37:22. Поддерживаемые дата и время: от 1000-01-01 00:00:00 до 9999-12-31 23:59:59
TIMESTAMP похож на DATETIME с некоторыми отличиями в зависимости от версии MySQL и режима, в котором работает сервер.

Создание полей даты и времени

Таблица, содержащая типы данных DATE и DATETIME, создается так же, как и другие столбцы. Например, мы можем создать новую таблицу под названием Заказы, которая содержит столбцы для номера заказа, заказанного товара, даты заказа и даты доставки заказа:

Столбец ORDER_DATE — это поле MySQL DATE TIME, в котором мы записываем дату и время, когда был размещен заказ. Невозможно предсказать точное время для даты доставки, поэтому мы записываем только дату.

Форматы даты и времени

Чаще всего для обозначения дат используются дефис (-) и двоеточие (:), обозначающие часы. Но мы можем использовать любой символ или не добавлять символы.

Например, допустимы все следующие форматы:

Функции даты и времени

MySQL содержит множество функций, которые используются для управления датой и временем. В следующей таблице представлен список наиболее часто используемых функций:

Функция Описание
ДОБАВИТЬ() Добавить дату.
ВРЕМЯ ДОБАВЛЕНИЯ() Это добавляет время.
CONVERT_TZ() Преобразование из одного часового пояса в другой.
КОРДАТО() Возвращает текущую дату.
CURTIME() Возвращает текущее системное время.
DATE_ADD() Добавьте одну дату к другой.
MySQL DATE_FORMAT () Устанавливает указанный формат даты.
ДАТА() Извлекает часть даты из выражения даты или даты и времени.
ДАТАДИФ() Вычтите одну дату из другой.
ИМЯ ДНЯ() Возвращает день недели.
ДЕНЬ МЕСЯЦА() Возвращает день месяца (1-31).
ДЕНЬ НЕДЕЛИ() Возвращает индекс дня недели из аргумента.
ДЕНЬ ГОДА() Возвращает день года (1-366).
ИЗВЛЕКАТЬ Получить часть даты.
НЕСКОЛЬКО ДНЕЙ() Преобразует номер дня в дату.
FROM_UNIXTIME() Задает формат даты UNIX.
MySQL DATE_SUB () Вычтите одну дату из другой.
ТЕПЕРЬ() Получить час.
ПОСЛЕДНИЙ ДЕНЬ Возвращает последний день месяца для темы.
ДАТА ОКОНЧАНИЯ() Создайте дату из одного года и одного дня в году.
ДЕЛАТЬ ВРЕМЯ () Возвращает значение времени.
МИКРОСЕКУНДА() Возвращает миллисекунды из аргумента.
МИНУТА() Возвращает минуты из аргумента.
МЕСЯЦ() Возвращает месяц с прошедшей даты.
НАЗВАНИЕ МЕСЯЦА() Возвращает название месяца.
ТЕПЕРЬ() Возвращает текущую дату и время.
ДОБАВИТЬ_ ПЕРИОД() Добавляет диапазон к месяцу-году.
PERIOD_DIFF() Возвращает количество месяцев между двумя периодами.
ЧЕТВЕРТЬ() Возвращает четверть часа от прошедшей даты в качестве аргумента.
SEC_TO_TIME() Преобразуйте секунды в формат «ЧЧ: ММ: СС’.
В СООТВЕТСТВИИ С() Возвращает второй (0-59).
MySQL STR_TO_DATE () Преобразуйте строку в дату.
ДОПОЛНИТЕЛЬНОЕ ВРЕМЯ() Это отнимает время.
СИСТЕМА() Возвращает время выполнения функции.
ФОРМАТ ВРЕМЕНИ() Установите формат времени.
TIME_TO_SEC() Возвращает аргумент, преобразованный в секундах.
ПОГОДА() Выберите в качестве аргумента долю времени из переданного выражения.
ДИФФЕРЕНЦИАЛЬНЫЙ() Это отнимает время.
ЧАСЫ() С одним аргументом эта функция возвращает дату или выражение даты и времени. Сумма аргументов возвращается с двумя аргументами.
TIMESTAMPADD() Добавляет интервал к datetime.
TIMESTAMPDIFF() Вычитает диапазон из даты и времени.
СЕГОДНЯ() Возвращает аргумент даты, преобразованный в дни.
UNIX_TIMESTAMP() Получает дату и время UNIX в формате MySQL.
DATA_UTC() Возвращает текущую дату в формате UTC).
ORA_UTC() Возвращает текущее время в формате UTC).
UTC_TIMESTAMP() Возвращает текущую дату и время в формате UTC).
НЕДЕЛЯ() Возвращает номер недели.
ЕЖЕНЕДЕЛЬНЫЙ ДЕНЬ() Возвращает индекс дня недели.
НЕДЕЛЯ ГОД() Возвращает календарную неделю даты (1-53).
ГОД() Возвращает год.
ГОД НЕДЕЛЯ() Возвращает год и неделю.

Вы можете поэкспериментировать с этими функциями формата даты MySQL, даже не вводя никаких данных в таблицу. Например:

Вы можете попробовать объединить несколько функций в один запрос (например, чтобы найти день недели):
mysql> ВЫБРАТЬ ИМЯ МЕСЯЦА (ВРЕМЯ());

Внесение значений даты и времени в столбцы таблицы

Давайте посмотрим, как значения даты MySQL вставляются в таблицу. Чтобы продемонстрировать это, мы продолжим использовать таблицу заказов, которую мы создали в начале статьи.

Начнем с добавления новой строки заказа. Поле order_no будет автоматически увеличиваться на 1, поэтому нам просто нужно ввести значения order_item, дату создания заказа и дату доставки. Дата заказа — это время размещения заказа, поэтому мы можем использовать функцию NOW (), чтобы заполнить строку текущими датой и временем.

Дата доставки — это период времени после даты заказа, который мы можем вернуть с помощью функции MySQL DATE_ADD (), которая принимает дату начала (в нашем случае СЕЙЧАС ()) и ИНТЕРВАЛ (в нашем случае 14 дней). Например:

Этот запрос создает заказ для указанного товара с датой, временем выполнения и двумя неделями позже в качестве даты доставки:

Точно так же вы можете заказать товар со сроком доставки через два месяца.

Курсы

0,0
0 отзывов
Excel для бухгалтера
  • 15 месяцев
  • Сертификат
7 900 ₽
Перейти на сайт
0,0
0 отзывов
Power BI и Excel для продвинутых
  • c 21 ноября
  • 9 недель
33 600 ₽64 211 ₽
2 943 ₽/мес рассрочка
-48%
Перейти на сайт