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

Hvordan MONTH() virker i MariaDB

I MariaDB, MONTH() er en indbygget dato- og tidsfunktion, der returnerer måneden fra et givet datoudtryk.

Den accepterer ét argument, som er den dato, du vil udtrække måneden fra.

Det returnerer måneden som et tal i området 1 til 12 for januar til december. Hvis datoen har en del på nul måned (f.eks. 0000-00-00 eller 2025-00-00 ), er resultatet 0 .

Syntaks

Syntaksen ser sådan ud:

MONTH(date) 

Hvor date er datoudtrykket, der skal hentes måneden fra.

Eksempel

Her er et eksempel:

SELECT MONTH('2030-08-01'); 

Resultat:

+----------------------------+| MONTH('2030-08-01') |+--------------------------+| 8 |+----------------------------+

Dato-tidsværdier

Det fungerer også med datetime-værdier:

SELECT MONTH('2030-08-01 10:30:45'); 

Resultat:

+--------------------------------------+| MONTH('2030-08-01 10:30:45') |+-----------------------------------+| 8 |+-------------------------------------+

Nul måneder

Nul måneder resulterer i 0 .

Eksempel:

SELECT MONTH('2030-00-00'); 

Resultat:

+----------------------------+| MONTH('2030-00-00') |+---------------------+| 0 |+----------------------------+

Numeriske datoer

Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.

Eksempel

SELECT MONTH(20301125); 

Resultat:

+----------------+| MONTH(20301125) |+----------------+| 11 |+-----------------+

Eller endda følgende (som bruger et tocifret årstal):

SELECT MONTH(301125); 

Resultat:

+----------------+| MONTH(301125) |+----------------+| 11 |+----------------+

Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:

SELECT MONTH(20301135); 

Resultat:

+----------------+| MONTH(20301135) |+-----------------+| NULL |+-----------------+

Andre afgrænsninger

Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:

SELECT 
    MONTH('2030/06/25'),
    MONTH('2030,06,25'),
    MONTH('2030:06:25'),
    MONTH('2030;06!25'); 

Resultat (ved hjælp af lodret output):

MONTH('2030/06/25'):6MONTH('2030,06,25'):6MONTH('2030:06:25'):6MONTH('2030;06!25'):6 

Aktuel dato

Vi kan sende NOW() som datetime-argument for at bruge den aktuelle dato:

SELECT 
    NOW(),
    MONTH(NOW()); 

Resultat:

+----------------------+--------------+| NU() | MÅNED(NU()) |+----------------------+------+| 16-05-2021 15:00:06 | 5 |+----------------------+------------+

Ugyldige argumenter

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

SELECT MONTH('2030-65-78'); 

Resultat:

+----------------------------+| MONTH('2030-65-78') |+--------------------+| NULL |+----------------------------+

Manglende argument

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

SELECT MONTH(); 

Resultat:

FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ​​')' på linje 1

Og endnu et eksempel:

SELECT MONTH('2030-12-10', '2031-12-10'); 

Resultat:

FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks, der skal bruges nær ''2031-12-10')' på linje 1

  1. Sådan får du row_number i MySQL

  2. SQLite - Opret en database

  3. I SQL, er det OK for to tabeller at referere til hinanden?

  4. Ulovlig instruktion:4 når du kører Django