sql >> Databasteknik >  >> RDS >> MariaDB

Hur MONTH() fungerar i MariaDB

I MariaDB, MONTH() är en inbyggd datum- och tidsfunktion som returnerar månaden från ett givet datumuttryck.

Den accepterar ett argument, vilket är det datum du vill extrahera månaden från.

Den returnerar månaden som ett tal i intervallet 1 till 12 för januari till december. Om datumet har en nollmånadsdel (t.ex. 0000-00-00 eller 2025-00-00 ), blir resultatet 0 .

Syntax

Syntaxen ser ut så här:

MONTH(date) 

Där date är datumuttrycket att hämta månaden från.

Exempel

Här är ett exempel:

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

Resultat:

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

Datetime-värden

Det fungerar också med datetime-värden:

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

Resultat:

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

Noll månader

Noll månader resulterar i 0 .

Exempel:

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

Resultat:

+----------------------------+| MÅNAD('2030-00-00') |+----------------------------+| 0 |+----------------------------+

Numeriska datum

Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.

Exempel

SELECT MONTH(20301125); 

Resultat:

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

Eller till och med följande (som använder ett tvåsiffrigt år):

SELECT MONTH(301125); 

Resultat:

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

Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:

SELECT MONTH(20301135); 

Resultat:

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

Andra avgränsare

Du kan använda andra avgränsare för datumet. MariaDB är ganska förlåtande när det kommer till avgränsare på datum. Här är några giltiga exempel:

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

Resultat (med vertikal utdata):

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

Aktuellt datum

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

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

Resultat:

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

Ogiltiga argument

När ett ogiltigt argument skickades, MONTH() returnerar null :

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

Resultat:

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

Argument saknas

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

SELECT MONTH(); 

Resultat:

ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ')' på rad 1

Och ett annat exempel:

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

Resultat:

ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ''2031-12-10')' på rad 1

  1. SQL Server UNION - Vilket är standardbeteendet ORDER BY Behavior

  2. Skapa rumsenhet för en tabell som har ett fält med LONG datatyp i Sqlite

  3. 4 typer av information att inkludera i din CRM-databas

  4. SQLite DATEADD() Ekvivalent