sql >> Database >  >> RDS >> MariaDB

Hoe TIME() werkt in MariaDB

In MariaDB, TIME() is een ingebouwde datum- en tijdfunctie die het tijdgedeelte extraheert uit een bepaalde tijd- of datetime-expressie en dit als een tekenreeks retourneert.

Het accepteert één argument, namelijk de tijd- of datetime-waarde waarvoor u de tijd wilt extraheren.

Syntaxis

De syntaxis gaat als volgt:

TIME(expr)

Waar expr is de tijd- of datetime-expressie waarvoor de tijd moet worden geëxtraheerd.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT TIME('2030-02-01 10:30:45');

Resultaat:

+-----------------------------+
| TIME('2030-02-01 10:30:45') |
+-----------------------------+
| 10:30:45                    |
+-----------------------------+

Tijdwaarden

Hier is een voorbeeld dat de tijd extraheert uit een tijdwaarde:

SELECT TIME('10:30:45');

Resultaat:

+------------------+
| TIME('10:30:45') |
+------------------+
| 10:30:45         |
+------------------+

Microseconden

Hier is een voorbeeld met microseconden:

SELECT TIME('2030-02-01 10:30:45.123456');

Resultaat:

+------------------------------------+
| TIME('2030-02-01 10:30:45.123456') |
+------------------------------------+
| 10:30:45.123456                    |
+------------------------------------+

Grotere uren

TIME waarden kunnen in het bereik liggen '-838:59:59.999999' naar '838:59:59.999999' .

Daarom kan het uurgedeelte veel hoger zijn dan 23 :

SELECT TIME('578:30:45');

Resultaat:

+-------------------+
| TIME('578:30:45') |
+-------------------+
| 578:30:45         |
+-------------------+

Negatieve tijden

Negatieve tijden zijn geldig:

Voorbeeld

SELECT TIME('-578:30:45');

Resultaat:

+--------------------+
| TIME('-578:30:45') |
+--------------------+
| -578:30:45         |
+--------------------+

Uren buiten bereik

Tijdwaarden buiten het bereik '-838:59:59.999999' naar '838:59:59.999999' zijn beperkt tot de relevante grens en bevatten een waarschuwing.

Voorbeeld:

SELECT TIME('978:30:45');

Resultaat (met verticale uitvoer):

+-------------------+
| TIME('978:30:45') |
+-------------------+
| 838:59:59         |
+-------------------+
1 row in set, 1 warning (0.003 sec)

Laten we de waarschuwing eens bekijken:

SHOW WARNINGS;

Resultaat (met verticale uitvoer):

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

Huidige datum

We kunnen NOW() doorgeven als het datetime-argument om de huidige tijd te gebruiken:

SELECT 
    NOW(),
    TIME(NOW());

Resultaat:

+---------------------+-------------+
| NOW()               | TIME(NOW()) |
+---------------------+-------------+
| 2021-05-27 10:24:23 | 10:24:23    |
+---------------------+-------------+

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, TIME() retourneert null met een waarschuwing:

SELECT TIME('Ten Thirty AM');

Resultaat:

+-----------------------+
| TIME('Ten Thirty AM') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set, 1 warning (0.002 sec)

Controleer de waarschuwing:

SHOW WARNINGS;

Resultaat:

+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Incorrect time value: 'Ten Thirty AM' |
+---------+------+---------------------------------------+

Ontbrekend argument

Bellen TIME() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT TIME();

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

En nog een voorbeeld:

SELECT TIME('10:30:45', '06:30:45');

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1

  1. PostgreSQL 9.3:dynamische draaitabel

  2. Rails 4 session.id af en toe nul

  3. Hulp nodig bij berekening met behulp van twee datasets met Expression SSRS

  4. PostgreSQL-lef:wat is "resjunk"?