Когато работите с MySQL, можете да използвате TIME() функция за извличане на частта за време от стойност за време или дата и час.
Начинът, по който работи, е, че предавате израза time/datetime като аргумент и TIME() ще върне частта от времето.
Синтаксис
Синтаксисът е така:
TIME(expr)
Където expr е изразът за време/дата и час, от който искате да бъде извлечена частта за времето.
Основен пример
Ето пример за използване на стойност за дата и час.
SELECT TIME('2021-01-03 11:15:45');
Резултат:
+-----------------------------+
| TIME('2021-01-03 11:15:45') |
+-----------------------------+
| 11:15:45 |
+-----------------------------+
Дробни секунди
Ето пример, при който стойността за дата и час също съдържа част от секунди.
SELECT TIME('2021-01-03 11:15:45.123456');
Резултат:
+------------------------------------+
| TIME('2021-01-03 11:15:45.123456') |
+------------------------------------+
| 11:15:45.123456 |
+------------------------------------+
Пропускане на частта за секундите
Ето пример, при който частта за секундите е пропусната от първоначалната стойност.
SELECT TIME('2021-01-03 11:15');
Резултат:
+--------------------------+
| TIME('2021-01-03 11:15') |
+--------------------------+
| 11:15:00 |
+--------------------------+
В този случай частта за секундите все още се връща, въпреки че е пропусната от първоначалната стойност.
Извличане на времето от стойност „време“
Както споменахме, първият аргумент може да бъде самата стойност за време (т.е. не е задължително да е стойност за дата и час).
SELECT TIME('11:15');
Резултат:
+---------------+
| TIME('11:15') |
+---------------+
| 11:15:00 |
+---------------+
Репликация, базирана на оператор – Предупреждение
Документацията на MySQL посочва следното за TIME() функция:
Тази функция не е безопасна за репликация, базирана на изрази. Регистрира се предупреждение, ако използвате тази функция, когато
binlog_formatе настроен наSTATEMENT.