sql >> Database >  >> RDS >> MariaDB

3 manieren om het jaar, de maand en de dag te scheiden van een datum in MariaDB

MariaDB heeft verschillende functies waarmee u verschillende datum- en tijddelen uit datum/tijd-waarden kunt extraheren. U kunt deze gebruiken om elke datum/tijd-component indien nodig in een eigen kolom te scheiden.

Hieronder staan ​​drie manieren om het jaar, de maand en de dag te extraheren uit een datumwaarde in MariaDB.

Het YEAR() , MONTH() , en DAY() Functies

Het YEAR() , MONTH() , en DAY() functies extraheren het jaar, de maand en de dag uit respectievelijk een datum- of datetime-waarde.

Hier is een voorbeeld van het gebruik van deze functies om elke datumcomponent in zijn eigen kolom te retourneren:

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

Resultaat:

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

De DAY() functie is eigenlijk een synoniem voor DAYOFMONTH() , dus beide geven hetzelfde resultaat.

Er is ook een WEEKDAY() functie, een DAYOFWEEK() functie, een DAYOFYEAR() functie, en een DAYNAME() functie, die elk een andere weergave van de dag retourneren.

Plus er is een MONTHNAME() functie die de naam van de maand retourneert in plaats van het nummer.

Hier is nog een voorbeeld dat deze functies bevat:

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";

Resultaat (met verticale uitvoer):

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

U kunt ook functies gebruiken zoals WEEK() om het weeknummer terug te geven, en QUARTER() om het kwartaal terug te geven.

Voorbeeld:

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

Resultaat:

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

De WEEK() functie accepteert een tweede argument waarmee u de modus kunt specificeren. Dit kan het resulterende weeknummer wijzigen, afhankelijk van de werkelijke datum. Zie hoe WEEK() Werkt in MariaDB voor meer informatie en een voorbeeld.

De EXTRACT() Functie

De EXTRACT() Met deze functie kunt u een gespecificeerde eenheid extraheren uit de datum/tijd-waarde. Daarom kunt u het gebruiken om het jaar, de maand en de dag uit de datum te halen (evenals de week en het kwartaal indien nodig).

Voorbeeld:

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";

Resultaat:

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

De DATE_FORMAT() Functie

De DATE_FORMAT() Met deze functie kunt u een datum- of datetime-waarde opmaken op basis van een notatiereeks. De format string geeft aan hoe de datum/tijd moet worden opgemaakt.

We kunnen deze functie daarom gebruiken om het jaar, de maand, de dag en de week van een datum terug te geven.

Voorbeeld:

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";

Resultaat:

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

Er zijn verschillende mogelijke formaatspecificaties voor elk datumdeel. Elk datumgedeelte kan een andere waarde retourneren, afhankelijk van de opgegeven indelingsspecificatie. U kunt bijvoorbeeld de naam van de volledige maand retourneren met %M in plaats van %m .

Zie MariaDB Format Strings voor een volledige lijst van format strings/specificaties die kunnen worden gebruikt met DATE_FORMAT() .


  1. Opgeslagen procedure in Oracle-voorbeeld met IN OUT-parameter

  2. Oracle:Null- en niet-null-rijen tellen

  3. Hoe datetime te vergelijken met alleen datum in SQL Server

  4. Genero verbinden met SQL Server