Mysql
 sql >> база данни >  >> RDS >> Mysql

TIME_FORMAT() Примери – MySQL

В MySQL можете да използвате TIME_FORMAT() функция за форматиране на времева стойност.

Тази функция работи точно като DATE_FORMAT() функция, с изключение на това, че стойността може да бъде форматирана само в часове, минути, секунди и микросекунди.

Вижте таблицата в долната част на тази статия за списък с спецификатори на формат, които могат да се използват с тази функция.

Синтаксис

Синтаксисът е така:

TIME_FORMAT(time,format)

Където time е стойността на времето, която искате да форматирате, и format е низът за форматиране (това определя как действително е форматирана стойността на времето).

Пример 1 – Основна употреба

Ето пример за демонстрация.

SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';

Резултат:

+-------------+
| Result      |
+-------------+
| 02:35:27 PM |
+-------------+

Този пример използва %r спецификатор на формат, който форматира времето като 12-часово (hh:mm:ss, последвано от AM или PM).

Пример 2 – По-специфично форматиране

Ако използването на по-общ спецификатор на формат като в предишния пример не е подходящо, има различни други спецификатори на формат, които могат да ви помогнат да изградите формата, от който се нуждаете.

Например, ако харесвате предишния формат, но не искате секундите да се връщат, можете да направите това:

SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';

Резултат:

+----------+
| Result   |
+----------+
| 02:35 PM |
+----------+

Пример 3 – 24-часово време

Има и спецификатори на формат за 24-часово време. Ето най-лесния начин да форматирате часа, като използвате 24-часово време.

SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';

Резултат:

+----------+
| Result   |
+----------+
| 14:35:27 |
+----------+

Пример 4 – Микросекунди

Ето пример, който включва частта от секундите в резултата:

SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';

Резултат:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.000000 |
+-----------------+

Разбира се, можем да включим и микросекунди в началната стойност на времето:

SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';

Резултат:

+-----------------+
| Result          |
+-----------------+
| 14:35:27.123456 |
+-----------------+

Пример 5 – Изминало време

Типът данни за времето не е ограничен до 24-часово време. Може да се използва и за представяне на изминало време. Когато използвате тази функция за изминало време, трябва да сте наясно как спецификаторите на часовия формат работят със стойности на времето извън диапазона от 0 до 23.

Документацията на MySQL гласи следното:

Ако стойността на времето съдържа част от час, която е по-голяма от 23 , %H и %k Спецификаторите на часа формат произвеждат стойност, по-голяма от обичайния диапазон от 0..23 . Другите спецификатори на формата на часа произвеждат стойността на часа по модул 12 .

Ето пример за демонстрация:

SELECT 
    TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24',
    TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48',
    TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100',
    TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';

Резултат:

+----------------+----------------+-----------------+-----------------+
| 24             | 48             | 100             | 500             |
+----------------+----------------+-----------------+-----------------+
| 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 |
+----------------+----------------+-----------------+-----------------+

Указатели на формат

Следните спецификатори могат да се използват за определяне на формата за връщане. Това са подмножество от наличните с DATE_FORMAT() функция. Стойността на формата трябва да започва със знак за процент (% ).

Спецификатор Описание
%f Микросекунди (000000 ..999999 )
%H Час (00 ..23 )
%h Час (01 ..12 )
%I Час (01 ..12 )
%i Минути, числови (00 ..59 )
%k Час (0 ..23 )
%l Час (1 ..12 )
%p AM или PM
%r Време, 12 часа (hh:mm:ss последвано от AM или PM )
%S Секунди (00 ..59 )
%s Секунди (00 ..59 )
%T Време, 24 часа (hh:mm:ss )
%% Литерал % символ


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-добрият начин да избегнете дублиране на влизане в mysql база данни

  2. Изтриване на дублиращи се редове от таблица

  3. Конфигуриране на репликация на база данни Master-Master MySQL

  4. Използваните оператори SELECT имат различен брой колони (REDUX!!)

  5. Какво е CHAR_LENGTH() в MySQL?