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

3 måder at adskille år, måned og dag fra en dato i MariaDB

MariaDB har flere funktioner, der gør dig i stand til at udtrække forskellige dato- og tidsdele fra dato/tidsværdier. Du kan bruge disse til at adskille hver dato/klokkeslæt-komponent i sin egen kolonne, hvis det kræves.

Nedenfor er tre måder at udtrække år, måned og dag fra en datoværdi i MariaDB.

YEAR() , MONTH() , og DAY() Funktioner

YEAR() , MONTH() , og DAY() funktioner udtrækker år, måned og dag fra henholdsvis en dato eller datetime-værdi.

Her er et eksempel på brug af disse funktioner til at returnere hver datokomponent i sin egen kolonne:

SELECT 
    YEAR('2025-08-30') AS "Year",
    MONTH('2025-08-30') AS "Month",
    DAY('2025-08-30') AS "Day";

Resultat:

+------+-------+------+
| Year | Month | Day  |
+------+-------+------+
| 2025 |     8 |   30 |
+------+-------+------+

DAY() funktion er faktisk et synonym for DAYOFMONTH() , så begge vil returnere det samme resultat.

Der er også en WEEKDAY() funktion, en DAYOFWEEK() funktion, en DAYOFYEAR() funktion og en DAYNAME() funktion, som hver returnerer en anden repræsentation af dagen.

Derudover er der en MONTHNAME() funktion, der returnerer månedens navn i stedet for dets nummer.

Her er et andet eksempel, der inkluderer disse funktioner:

SELECT 
    YEAR('2025-08-30') AS "YEAR",
    MONTH('2025-08-30') AS "MONTH",
    MONTHNAME('2025-08-30') AS "MONTHNAME",
    DAY('2025-08-30') AS "DAY",
    DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
    WEEKDAY('2025-08-30') AS "WEEKDAY",
    DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
    DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
    DAYNAME('2025-08-30') AS "DAYNAME";

Resultat (ved hjælp af lodret output):

      YEAR: 2025
     MONTH: 8
 MONTHNAME: August
       DAY: 30
DAYOFMONTH: 30
   WEEKDAY: 5
 DAYOFWEEK: 7
 DAYOFYEAR: 242
   DAYNAME: Saturday

Du kan også bruge funktioner såsom WEEK() for at returnere ugenummeret og QUARTER() for at returnere kvartalet.

Eksempel:

SELECT 
    WEEK('2025-08-30') AS "Week",
    QUARTER('2025-08-30') AS "Quarter";

Resultat:

+------+---------+
| Week | Quarter |
+------+---------+
|   34 |       3 |
+------+---------+

WEEK() funktion accepterer et andet argument, der giver dig mulighed for at angive tilstanden. Dette kan ændre det resulterende ugenummer, afhængigt af den faktiske dato. Se hvordan WEEK() Arbejder i MariaDB for mere information og et eksempel.

EXTRACT() Funktion

EXTRACT() funktionen giver dig mulighed for at udtrække en specificeret enhed fra dato/tidsværdien. Derfor kan du bruge den til at udtrække år, måned og dag fra datoen (samt uge og kvartal, hvis det kræves).

Eksempel:

SELECT 
    EXTRACT(YEAR FROM '2023-03-12') AS "Year",
    EXTRACT(MONTH FROM '2023-03-12') AS "Month",
    EXTRACT(DAY FROM '2023-03-12') AS "Day",
    EXTRACT(WEEK FROM '2023-03-12') AS "Week",
    EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter";

Resultat:

+------+-------+------+------+---------+
| Year | Month | Day  | Week | Quarter |
+------+-------+------+------+---------+
| 2023 |     3 |   12 |   11 |       1 |
+------+-------+------+------+---------+

DATE_FORMAT() Funktion

DATE_FORMAT() funktionen giver dig mulighed for at formatere en dato eller dato-tidsværdi baseret på en formatstreng. Formatstrengen angiver, hvordan dato/klokkeslæt skal formateres.

Vi kan derfor bruge denne funktion til at returnere år, måned, dag og uge fra en dato.

Eksempel:

SELECT 
    DATE_FORMAT('2035-12-08', '%Y') AS "Year",
    DATE_FORMAT('2035-12-08', '%m') AS "Month",
    DATE_FORMAT('2035-12-08', '%d') AS "Day",
    DATE_FORMAT('2035-12-08', '%U') AS "Week";

Resultat:

+------+-------+------+------+
| Year | Month | Day  | Week |
+------+-------+------+------+
| 2035 | 12    | 08   | 48   |
+------+-------+------+------+

Der er flere mulige formatspecifikationer for hver datodel. Hver datodel kan returnere en anden værdi, afhængigt af den faktiske angivne formatspecifikation. For eksempel kan du returnere hele månedens navn ved at bruge %M i stedet for %m .

Se MariaDB Format Strings for en komplet liste over formatstrenge/specifikationer, der kan bruges med DATE_FORMAT() .


  1. Bulk DELETE på SQL Server 2008 (Er der noget som Bulk Copy (bcp) til sletning af data?)

  2. SQL Server 2005 og midlertidig tabelomfang

  3. Om RM-formatelementet i Oracle

  4. Sådan tilføjes xml-kodning <?xml version=1.0 encoding=UTF-8?> til xml-output i SQL Server