Для чего используется MYSQLI_TYPE_INTERVAL?

PHP перечисляет MYSQLI_TYPE_INTERVAL как тип столбца, возвращаемого mysqli_result::fetch_field().

Насколько я понимаю, интервал - это всего лишь единица измерения, которую можно применить к информации о дате / времени. Вы не можете выбрать интервал как простые данные в SQL, например, с помощью запроса типа SELECT INTERVAL 1 DAY.

Кто-нибудь знает, для чего используется MYSQLI_TYPE_INTERVAL?

INTERVAL - это тип данных, определенный в SQL-92, хотя он не реализован в MySQL (кроме ключевого слова), возможно, он существует для совместимости или защиты от будущего.
Alex K. 03.08.2018 14:42

Он зарегистрирован, но никогда не используется? lxr.room11.org/…

Álvaro González 03.08.2018 14:47

Звучит правдоподобно. В этом случае MYSQLI_TYPE_INTERVAL можно игнорировать.

Code4R7 03.08.2018 20:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
3
133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Интервал используется для хранения периода времени. Таким образом, вы можете использовать это, чтобы легко рассчитать, когда должна быть следующая встреча, например:

Это еще не реализовано в MySQL, но зарегистрировано.

Будущая реализация (вероятно) для вашего развлечения будет выглядеть примерно так:

ТАК ЭТО НЕ РАБОТАЕТ (ЕЩЕ)!

SELECT date_add(`last_appointment`, `interval_field_name`) AS `next_appointment`
FROM `appointments`
WHERE `id` = 1

Я не совсем понимаю, о чем вы говорите. Такой запрос, как SELECT DATE_ADD(CURDATE(), INTERVAL 1 YEAR) AS next_year;, отлично работает в MySQL. Было бы интересно узнать, как интервал «хранится», например. как будет храниться год?

Code4R7 02.09.2018 19:57

Извините за запоздалую реакцию, отдыхала. Допустим, у вас разные интервалы для каждого покупателя. Итак, вы парикмахер, и некоторые клиенты приходят каждые 30 дней, а некоторые - каждые 60 дней. Вы можете сохранить разные интервалы для каждого клиента в поле interval_field. Таким образом, вам не нужно писать часть INTERVAL 30 DAYS (которая различается для каждого клиента), а просто выполните DATE_ADD (last_appointment, interval_field_name). Возможно, этот интервал хранится в (мини?) Секундах. Если есть большая разница в интервале (30 минут и 1 год), сложнее выполнить часть ИНТЕРВАЛ 30 ДНЕЙ самостоятельно.

Rolfie 21.09.2018 00:21
Ответ принят как подходящий

MYSQLI_TYPE_INTERVAL зарезервирован для типа данных MySQL INTERVAL, который еще не реализован в MySQL (см. ошибка 20844). На момент написания MySQL 8.0 не предлагает такого типа данных.

Обычно INTERVAL сохраняет период времени в нескольких форматах одновременно, например, годы, месяцы, недели, дни, часы, минуты и секунды. Это делает более удобными календарные расчеты. В то время как другие базы данных, такие как PostgreSQL, предоставляют эту функцию с давних пор, мы все еще ждем совсем немного времени, чтобы она наконец появилась с MySQL.

Другие вопросы по теме