MySQL HOUR()
функцията се използва за връщане на часовия компонент от времева стойност.
Връщаната стойност за стойност за времето от деня ще бъде между 0 и 23, но диапазонът, върнат от тази функция, може да бъде много по-голям, поради факта, че време типът данни не е ограничен само до време от деня (може да се използва и за представяне на изминало време или интервал от време между две събития). Това означава, че върнатата стойност може да бъде по-голяма от 24 часа или дори отрицателна стойност.
Синтаксис
Синтаксисът на тази функция е така:
HOUR(time)
Където time
е стойността на времето, от която искате да извлечете часовия компонент.
Пример 1 – Основна употреба
Ето пример за демонстрация.
SELECT HOUR('10:35:27');
Резултат:
+------------------+ | HOUR('10:35:27') | +------------------+ | 10 | +------------------+
Пример 2 – Повече от 24 часа
Както бе споменато, ако стойността на времето се използва за представяне на изминало време или времеви интервал между две събития, тя може да има часов компонент, по-голям от 24 часа. Така че следният пример е напълно валиден.
SELECT HOUR('310:35:27');
Резултат:
+-------------------+ | HOUR('310:35:27') | +-------------------+ | 310 | +-------------------+
Пример 3 – Отрицателни стойности
Отрицателните стойности също са напълно валидни за времета тип данни. Обърнете внимание обаче, че HOUR()
функцията ще го върне като положителна стойност:
SELECT HOUR('-310:35:27');
Резултат:
+--------------------+ | HOUR('-310:35:27') | +--------------------+ | 310 | +--------------------+
Ако това е проблем и имате нужда от връщане на отрицателни стойности като отрицателни стойности, EXTRACT()
функцията може да е това, което търсите:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Резултат:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+