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

Jak działa MAKETIME() w MariaDB

W MariaDB, MAKETIME() to wbudowana funkcja daty i czasu, która zwraca wartość czasu na podstawie godzin, minut i sekund podanych jako argumenty.

Składnia

Składnia wygląda tak:

MAKETIME(hour,minute,second)

Przykład

Oto przykład:

SELECT MAKETIME(08, 30, 45);

Wynik:

+----------------------+
| MAKETIME(08, 30, 45) |
+----------------------+
| 08:30:45             |
+----------------------+

I jeszcze jeden:

SELECT MAKETIME(23, 8, 1);

Wynik:

+--------------------+
| MAKETIME(23, 8, 1) |
+--------------------+
| 23:08:01           |
+--------------------+

Zakresy

Jeśli hour argument jest poza zakresem -838 do 838 , wartość jest obcinana z ostrzeżeniem.

Jeśli minute lub second argumenty są poza zakresem 0 do 59 , wynik to null i wyświetlane jest ostrzeżenie (dokumentacja MariaDB stwierdza, że ​​zakres to 0 do 60 , ale w moich testach tak nie jest. Ponadto dokumentacja MariaDB stwierdza również, że zakres wartości czasu MariaDB to '-838:59:59.999999' do '838:59:59.999999' ).

W każdym razie, oto przykład czasu z wartościami, które znajdują się na górnym końcu ich akceptowanego zakresu:

SELECT MAKETIME(838, 59, 59.999999);

Wynik:

+------------------------------+
| MAKETIME(838, 59, 59.999999) |
+------------------------------+
| 838:59:59.999999             |
+------------------------------+

Wartości te nadal mieściły się w dopuszczalnym zakresie, więc otrzymaliśmy prawidłową wartość czasu.

Nieprawidłowe minuty i sekundy

Oto, co się dzieje, gdy przekraczamy akceptowany zakres przez minute i second argumenty:

SELECT 
    MAKETIME(00, 60, 00),
    MAKETIME(00, 00, 60);

Wynik:

+----------------------+----------------------+
| MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) |
+----------------------+----------------------+
| NULL                 | NULL                 |
+----------------------+----------------------+
1 row in set, 1 warning (0.001 sec)

Wynik to null dla obu, z ostrzeżeniem.

Sprawdźmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect seconds value: '60' |
+---------+------+-----------------------------------------+

Nieprawidłowe godziny

Zobaczmy teraz, co się stanie, gdy wyjdziemy poza zaakceptowany zakres przez hour argument:

SELECT MAKETIME(900, 00, 00);

Wynik:

+-----------------------+
| MAKETIME(900, 00, 00) |
+-----------------------+
| 838:59:59             |
+-----------------------+
1 row in set, 1 warning (0.000 sec)

W tym scenariuszu zwracana jest wartość czasu z godzinami, minutami i sekundami przyciętymi do ich górnego zakresu. Zwracane jest również ostrzeżenie.

Sprawdźmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '900:00:00' |
+---------+------+---------------------------------------------+

Brakujący argument

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

SELECT MAKETIME();

Wynik:

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

I kolejny przykład:

SELECT MAKETIME( 12, 1 );

Wynik:

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

Umów się na randkę

Zobacz także SEC_TO_TIME() do konstruowania wartości daty z liczby sekund.

Zobacz także MAKEDATE() do konstruowania wartości daty na podstawie roku i dnia roku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skalowanie bazy danych Moodle

  2. Jak REGEXP działa w MariaDB

  3. Wysoka dostępność bazy danych dla Camunda BPM przy użyciu MySQL lub MariaDB Galera Cluster

  4. Przygotowanie serwera MySQL lub MariaDB do produkcji — część pierwsza

  5. Napraw błąd 1064 (42000) podczas korzystania z operatora MINUS w MariaDB