sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan HOUR() virker i MariaDB

I MariaDB, HOUR() er en indbygget dato- og tidsfunktion, der returnerer timen fra et givet tidsudtryk.

Den accepterer ét argument, som er det tidspunkt, du vil udtrække timen fra.

For klokkeslætsværdier returnerer den timen som et tal i området 0 til 23 . Men intervallet TIME værdier kan være meget større, og derfor kan den returnerede værdi være meget højere end 23 .

Returværdien er altid positiv, selvom der er angivet et negativt tidspunkt.

Syntaks

Syntaksen ser sådan ud:

HOUR(time)

Hvor time er tidsudtrykket at få timen fra.

Eksempel

Her er et eksempel:

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

Resultat:

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

Dato-tidsværdier

Det fungerer også med datetime-værdier:

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

Resultat:

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

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 HOUR('578:30:45');

Resultat:

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

Negative tidspunkter

Negative tidspunkter giver et positivt resultat.

Eksempel

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

Resultat:

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

Uden for rækkevidde timer

Tidsværdier uden for området '-838:59:59.999999' til '838:59:59.999999' returner 838 .

Eksempel:

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

Resultat (ved hjælp af lodret output):

+-------------------+
| HOUR('978:30:45') |
+-------------------+
|               838 |
+-------------------+

Aktuel dato

Vi kan sende NOW() som datetime-argument for at bruge det aktuelle klokkeslæt:

SELECT 
    NOW(),
    HOUR(NOW());

Resultat:

+---------------------+-------------+
| NOW()               | HOUR(NOW()) |
+---------------------+-------------+
| 2021-05-16 10:50:02 |          10 |
+---------------------+-------------+

Ugyldige argumenter

Når et ugyldigt argument sendes, HOUR() returnerer null :

SELECT HOUR('Ten Thirty AM');

Resultat:

+-----------------------+
| HOUR('Ten Thirty AM') |
+-----------------------+
|                  NULL |
+-----------------------+

Manglende argument

Kalder HOUR() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT HOUR();

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 HOUR('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. Ændringer til en skrivbar partition kan mislykkes uventet

  2. Bryd murene ned! Sådan unsilo dine data

  3. Sådan ændres kommandolinjeprompten i SQLite

  4. MySQL-brugertilladelser