sql >> Databasteknik >  >> RDS >> MariaDB

Hur TIME() fungerar i MariaDB

I MariaDB, TIME() är en inbyggd datum- och tidsfunktion som extraherar tidsdelen från ett givet uttryck för tid eller datum och returnerar det som en sträng.

Den accepterar ett argument, vilket är det tid- eller datetime-värde som du vill extrahera tiden för.

Syntax

Syntaxen ser ut så här:

TIME(expr)

Där expr är det tid- eller datetime-uttryck som tiden ska extraheras för.

Exempel

Här är ett exempel att visa:

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

Resultat:

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

Tidsvärden

Här är ett exempel som extraherar tiden från ett tidsvärde:

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

Resultat:

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

Mikrosekunder

Här är ett exempel som inkluderar mikrosekunder:

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

Resultat:

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

Större timmar

TIME värden kan ligga inom intervallet '-838:59:59.999999' till '838:59:59.999999' .

Därför kan timdelen vara mycket högre än 23 :

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

Resultat:

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

Negativa tider

Negativa tider är giltiga:

Exempel

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

Resultat:

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

Timmar utanför intervallet

Tidsvärden utanför intervallet '-838:59:59.999999' till '838:59:59.999999' är begränsade vid den relevanta gränsen och inkluderar en varning.

Exempel:

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

Resultat (med vertikal utdata):

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

Låt oss kolla varningen:

SHOW WARNINGS;

Resultat (med vertikal utdata):

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

Aktuellt datum

Vi kan skicka NOW() som datetime-argument för att använda den aktuella tiden:

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

Resultat:

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

Ogiltiga argument

När ett ogiltigt argument skickades, TIME() returnerar null med en varning:

SELECT TIME('Ten Thirty AM');

Resultat:

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

Kontrollera varningen:

SHOW WARNINGS;

Resultat:

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

Argument saknas

Anropar TIME() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT TIME();

Resultat:

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

Och ett annat exempel:

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

Resultat:

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. Hur pg_typeof() fungerar i PostgreSQL

  2. Exportera SQLite-frågeresultat till en CSV-fil

  3. SQL GROUP BY-klausul för nybörjare

  4. SQL ersätter alla NULL