I MariaDB, TIME() er en indbygget dato- og klokkeslætsfunktion, der udtrækker tidsdelen fra et givet klokkeslæt eller datetime-udtryk og returnerer det som en streng.
Den accepterer ét argument, som er den tid eller dato/tidsværdi, som du vil udtrække tiden for.
Syntaks
Syntaksen ser sådan ud:
TIME(expr)
Hvor expr er klokkeslættet eller datetime-udtrykket, som klokkeslættet skal udtrækkes for.
Eksempel
Her er et eksempel til demonstration:
SELECT TIME('2030-02-01 10:30:45'); Resultat:
+-----------------------------+
| TIME('2030-02-01 10:30:45') |
+-----------------------------+
| 10:30:45 |
+-----------------------------+ Tidsværdier
Her er et eksempel, der udtrækker tiden fra en tidsværdi:
SELECT TIME('10:30:45'); Resultat:
+------------------+
| TIME('10:30:45') |
+------------------+
| 10:30:45 |
+------------------+ Mikrosekunder
Her er et eksempel, der inkluderer 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 timer
TIME værdier kan være i området '-838:59:59.999999' til '838:59:59.999999' .
Derfor kan timedelen være meget højere end 23 :
SELECT TIME('578:30:45'); Resultat:
+-------------------+
| TIME('578:30:45') |
+-------------------+
| 578:30:45 |
+-------------------+ Negative tidspunkter
Negative tider er gyldige:
Eksempel
SELECT TIME('-578:30:45'); Resultat:
+--------------------+
| TIME('-578:30:45') |
+--------------------+
| -578:30:45 |
+--------------------+ Uden for rækkevidde timer
Tidsværdier uden for området '-838:59:59.999999' til '838:59:59.999999' er afgrænset ved den relevante grænse og inkluderer en advarsel.
Eksempel:
SELECT TIME('978:30:45'); Resultat (ved hjælp af lodret output):
+-------------------+
| TIME('978:30:45') |
+-------------------+
| 838:59:59 |
+-------------------+
1 row in set, 1 warning (0.003 sec) Lad os tjekke advarslen:
SHOW WARNINGS; Resultat (ved hjælp af lodret output):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Aktuel dato
Vi kan sende NOW() som datetime-argument for at bruge det aktuelle klokkeslæt:
SELECT
NOW(),
TIME(NOW()); Resultat:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Ugyldige argumenter
Når et ugyldigt argument sendes, TIME() returnerer null med en advarsel:
SELECT TIME('Ten Thirty AM'); Resultat:
+-----------------------+
| TIME('Ten Thirty AM') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.002 sec) Tjek advarslen:
SHOW WARNINGS; Resultat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Manglende argument
Kalder TIME() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
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
Og endnu et eksempel:
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