PHP перечисляет MYSQLI_TYPE_INTERVAL как тип столбца, возвращаемого mysqli_result::fetch_field().
Насколько я понимаю, интервал - это всего лишь единица измерения, которую можно применить к информации о дате / времени. Вы не можете выбрать интервал как простые данные в SQL, например, с помощью запроса типа SELECT INTERVAL 1 DAY.
Кто-нибудь знает, для чего используется MYSQLI_TYPE_INTERVAL?
Он зарегистрирован, но никогда не используется? lxr.room11.org/…
Звучит правдоподобно. В этом случае MYSQLI_TYPE_INTERVAL можно игнорировать.






Интервал используется для хранения периода времени. Таким образом, вы можете использовать это, чтобы легко рассчитать, когда должна быть следующая встреча, например:
Это еще не реализовано в 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. Было бы интересно узнать, как интервал «хранится», например. как будет храниться год?
Извините за запоздалую реакцию, отдыхала. Допустим, у вас разные интервалы для каждого покупателя. Итак, вы парикмахер, и некоторые клиенты приходят каждые 30 дней, а некоторые - каждые 60 дней. Вы можете сохранить разные интервалы для каждого клиента в поле interval_field. Таким образом, вам не нужно писать часть INTERVAL 30 DAYS (которая различается для каждого клиента), а просто выполните DATE_ADD (last_appointment, interval_field_name). Возможно, этот интервал хранится в (мини?) Секундах. Если есть большая разница в интервале (30 минут и 1 год), сложнее выполнить часть ИНТЕРВАЛ 30 ДНЕЙ самостоятельно.
MYSQLI_TYPE_INTERVAL зарезервирован для типа данных MySQL INTERVAL, который еще не реализован в MySQL (см. ошибка 20844). На момент написания MySQL 8.0 не предлагает такого типа данных.
Обычно INTERVAL сохраняет период времени в нескольких форматах одновременно, например, годы, месяцы, недели, дни, часы, минуты и секунды. Это делает более удобными календарные расчеты. В то время как другие базы данных, такие как PostgreSQL, предоставляют эту функцию с давних пор, мы все еще ждем совсем немного времени, чтобы она наконец появилась с MySQL.
INTERVAL- это тип данных, определенный в SQL-92, хотя он не реализован в MySQL (кроме ключевого слова), возможно, он существует для совместимости или защиты от будущего.