MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak TIME_FORMAT() działa w MariaDB

W MariaDB, TIME_FORMAT() to wbudowana funkcja daty i czasu, która formatuje wartość czasu zgodnie z podanym ciągiem formatu.

Działa podobnie do DATE_FORMAT() funkcji, z wyjątkiem tego, że ciąg formatu może zawierać tylko specyfikatory formatu dla godzin, minut i sekund.

Wymaga dwóch argumentów; czas i ciąg formatu.

Składnia

Składnia wygląda tak:

TIME_FORMAT(time,format)

Gdzie time to wartość czasu i format jest ciągiem formatu. Zobacz ciągi formatujące MariaDB, aby uzyskać listę dopuszczalnych specyfikatorów formatu. Jak wspomniano, akceptowane są tylko specyfikatory formatu godzin, minut i sekund. Wszystkie inne wartości zwracają null .

Przykład

Oto przykład:

SELECT TIME_FORMAT('10:30:45', '%H %i %S');

Wynik:

+-------------------------------------+
| TIME_FORMAT('10:30:45', '%H %i %S') |
+-------------------------------------+
| 10 30 45                            |
+-------------------------------------+

I znowu, ale tym razem dostarczamy bardziej rozbudowany ciąg formatujący:

SELECT TIME_FORMAT(
    '10:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result;

Wynik:

+--------------------------------------+
| Result                               |
+--------------------------------------+
| 10 hours, 30 minutes, and 45 seconds |
+--------------------------------------+

Większe godziny

TIME wartości mogą należeć do zakresu '-838:59:59.999999' do '838:59:59.999999' .

Dlatego część godzinowa może być znacznie wyższa niż 23 :

SELECT TIME_FORMAT(
    '810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result;

Wynik:

+---------------------------------------+
| Result                                |
+---------------------------------------+
| 810 hours, 30 minutes, and 45 seconds |
+---------------------------------------+

Ujemne wartości czasu

Oto przykład z ujemną wartością czasu:

SELECT TIME_FORMAT(
    '-810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result;

Wynik:

+----------------------------------------+
| Result                                 |
+----------------------------------------+
| -810 hours, 30 minutes, and 45 seconds |
+----------------------------------------+

Czasy poza zakresem

Jednak podanie wartości czasu poza zakresem zwróci górną granicę tego zakresu wraz z ostrzeżeniem:

SELECT TIME_FORMAT(
    '910:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result;

Wynik:

+---------------------------------------+
| Result                                |
+---------------------------------------+
| 838 hours, 59 minutes, and 59 seconds |
+---------------------------------------+
1 row in set, 1 warning (0.003 sec)

Sprawdźmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '910:30:45' |
+---------+------+---------------------------------------------+

Nieprawidłowe argumenty

Po przekazaniu jakichkolwiek nieprawidłowych argumentów, TIME_FORMAT() zwraca null z ostrzeżeniem:

SELECT TIME_FORMAT('Homer', 'Simpson');

Wynik:

+---------------------------------+
| TIME_FORMAT('Homer', 'Simpson') |
+---------------------------------+
| NULL                            |
+---------------------------------+
1 row in set, 1 warning (0.009 sec)

Sprawdź ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+-------------------------------+
| Level   | Code | Message                       |
+---------+------+-------------------------------+
| Warning | 1292 | Incorrect time value: 'Homer' |
+---------+------+-------------------------------+

Nieprawidłowy ciąg formatujący

Ciąg formatu może zawierać tylko specyfikatory formatu dla godzin, minut i sekund. Wszelkie inne specyfikatory formatu dają w wyniku null zwracany:

SELECT TIME_FORMAT('10:30:45', '%M %W');

Wynik:

+----------------------------------+
| TIME_FORMAT('10:30:45', '%M %W') |
+----------------------------------+
| NULL                             |
+----------------------------------+

Brakujący argument

Wywołanie TIME_FORMAT() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT TIME_FORMAT();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'

I kolejny przykład:

SELECT TIME_FORMAT('10:09:10');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak TIME_TO_SEC() działa w MariaDB

  2. Jak zainstalować i skonfigurować MaxScale dla MariaDB

  3. Jak odzyskać klaster Galera lub replikację MySQL z zespołu rozszczepionego mózgu?

  4. Jak zainstalować, zabezpieczyć i dostroić wydajność serwera bazy danych MariaDB

  5. 3 sposoby na pokazanie sortowania połączenia w MariaDB