Когато работите с 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
.