sql >> Databasteknik >  >> RDS >> MariaDB

Hur HOUR() fungerar i MariaDB

I MariaDB, HOUR() är en inbyggd datum- och tidsfunktion som returnerar timmen från ett givet tidsuttryck.

Den accepterar ett argument, vilket är tiden du vill extrahera timmen från.

För värden för tid på dagen returnerar den timmen som ett tal i intervallet 0 till 23 . Men intervallet TIME värden kan vara mycket större, och därför kan det returnerade värdet vara mycket högre än 23 .

Returvärdet är alltid positivt, även om en negativ tid anges.

Syntax

Syntaxen ser ut så här:

HOUR(time)

Där time är tidsuttrycket att hämta timmen från.

Exempel

Här är ett exempel:

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

Resultat:

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

Datetime-värden

Det fungerar också med datetime-värden:

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

Resultat:

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

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

Resultat:

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

Negativa tider

Negativa tider ger ett positivt resultat.

Exempel

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

Resultat:

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

Timmar utanför intervallet

Tidsvärden utanför intervallet '-838:59:59.999999' till '838:59:59.999999' returnera 838 .

Exempel:

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

Resultat (med vertikal utdata):

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

Aktuellt datum

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

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

Resultat:

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

Ogiltiga argument

När ett ogiltigt argument skickats, HOUR() returnerar null :

SELECT HOUR('Ten Thirty AM');

Resultat:

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

Argument saknas

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

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

Och ett annat exempel:

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. Hur man beräknar skillnaden mellan två datum i T-SQL

  2. Datumkolumnaritmetik i PostgreSQL-fråga

  3. Vad är NoSQL och hur används det?

  4. Now() utan tidszon