sql >> Database >  >> RDS >> MariaDB

Hoe HOUR() werkt in MariaDB

In MariaDB, HOUR() is een ingebouwde datum- en tijdfunctie die het uur van een bepaalde tijduitdrukking retourneert.

Het accepteert één argument, namelijk de tijd waaruit je het uur wilt halen.

Voor waarden voor de tijd van de dag wordt het uur geretourneerd als een getal in het bereik 0 tot 23 . Het bereik van TIME waarden kunnen veel groter zijn en daarom kan de geretourneerde waarde veel hoger zijn dan 23 .

De retourwaarde is altijd positief, zelfs als er een negatieve tijd is opgegeven.

Syntaxis

De syntaxis gaat als volgt:

HOUR(time)

Waar time is de tijduitdrukking om het uur uit te halen.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

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

Resultaat:

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

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

Resultaat:

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

Negatieve tijden

Negatieve tijden leveren een positief resultaat op.

Voorbeeld

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

Resultaat:

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

Uren buiten bereik

Tijdwaarden buiten het bereik '-838:59:59.999999' naar '838:59:59.999999' retourneer 838 .

Voorbeeld:

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

Resultaat (met verticale uitvoer):

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

Huidige datum

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

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

Resultaat:

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

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, HOUR() retourneert null :

SELECT HOUR('Ten Thirty AM');

Resultaat:

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

Ontbrekend argument

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

SELECT HOUR();

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 HOUR('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. Aggregatie van Oracle-tekenreeksen

  2. Hoe voeg ik een automatisch oplopende primaire sleutel toe aan een bestaande tabel in PostgreSQL?

  3. Toegangsmenu maken met Tree View Control

  4. Voer een groot SQL-script uit (met GO-opdrachten)