Hieronder staan 4 functies waarmee u het jaar kunt retourneren vanaf een datum in MariaDB. Drie functies geven alleen het jaar terug en één geeft zowel het jaar als de week terug.
Het YEAR()
Functie
Het YEAR()
functie retourneert het jaar voor een bepaalde datum. Het resultaat ligt in het bereik 1000
tot 9999
, of 0
voor datums met een jaartal nul (zoals 0000-00-00
).
Voorbeeld:
SELECT YEAR('2023-07-25');
Resultaat:
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+
De EXTRACT()
Functie
De
functie stelt u in staat om een gespecificeerde eenheid uit de datum te halen. Daarom kun je het gebruiken om het jaar (evenals andere eenheden) uit de datum te halen.EXTRACT
()
Voorbeeld:
SELECT EXTRACT(YEAR FROM '2023-07-25');
Resultaat:
+---------------------------------+ | EXTRACT(YEAR FROM '2023-07-25') | +---------------------------------+ | 2023 | +---------------------------------+
De DATE_FORMAT()
Functie
De DATE_FORMAT()
Met deze functie kunt u een datum opmaken op basis van een opmaakreeks. De format string geeft aan hoe de datum moet worden opgemaakt.
U kunt deze functie daarom gebruiken om het jaar (evenals elke andere eenheid) vanaf de datum terug te geven. Er zijn verschillende formaatspecificaties voor het retourneren van het jaar in verschillende formaten. Bijvoorbeeld een jaartal van vier cijfers, jaartal van twee cijfers, enz.
Hier is een voorbeeld dat het jaar in verschillende vormen teruggeeft:
SELECT
DATE_FORMAT('2023-01-01', '%X') AS "%X",
DATE_FORMAT('2023-01-01', '%x') AS "%x",
DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
DATE_FORMAT('2023-01-01', '%y') AS "%y";
Resultaat:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2022 | 2023 | 23 | +------+------+------+------+
Merk op dat %x
een ander jaarnummer geretourneerd dan de andere.
Hier is een beschrijving van elk van die formaatspecificaties, wat verklaart waarom %x
een ander resultaat geretourneerd:
Formaatspecificatie | Beschrijving |
---|---|
%X | Jaar met 4 cijfers wanneer de eerste dag van de week zondag is. Gebruikt met %V . |
%x | Jaar met 4 cijfers wanneer de eerste dag van de week maandag is. Gebruikt met %v . |
%Y | Jaar met 4 cijfers. |
%y | Jaar met 2 cijfers. |
En hier is een beschrijving van %V
en %v
zoals vermeld in de bovenstaande tabel:
Formaatspecificatie | Beschrijving |
---|---|
%V | Weeknummer (01-53), wanneer de eerste dag van de week zondag is. Gebruikt met %X . |
%v | Weeknummer (01-53), wanneer de eerste dag van de week maandag is. Gebruikt met %x . |
We zouden die formaatspecificaties dus aan het bovenstaande voorbeeld kunnen toevoegen en het volgende krijgen:
SELECT
DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";
Resultaat:
+----------+----------+ | %X, %V | %x, %v | +----------+----------+ | 2023, 01 | 2022, 52 | +----------+----------+
Merk op dat %x
zal niet altijd een ander jaar terugkeren - het hangt af van de werkelijke datum die wordt gebruikt. Soms is het %X
dat geeft een ander jaar terug aan de anderen.
Laten we de datum een jaar vooruit schuiven:
SELECT
DATE_FORMAT('2024-01-01', '%X') AS "%X",
DATE_FORMAT('2024-01-01', '%x') AS "%x",
DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
DATE_FORMAT('2024-01-01', '%y') AS "%y";
Resultaat:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2024 | 2024 | 24 | +------+------+------+------+
Deze keer is het %X
dat is de vreemde eend in de bijt. Zoals uitgelegd in de bovenstaande tabel, hangt het ervan af of de eerste dag van de week zondag of maandag is.
Als we verder in het jaar gaan, keren alle formaatspecificaties natuurlijk hetzelfde jaar terug:
SELECT
DATE_FORMAT('2024-12-12', '%X') AS "%X",
DATE_FORMAT('2024-12-12', '%x') AS "%x",
DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
DATE_FORMAT('2024-12-12', '%y') AS "%y";
Resultaat:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2024 | 2024 | 2024 | 24 | +------+------+------+------+
Zie MariaDB Format Strings voor een volledige lijst met format strings/specificaties.
De YEARWEEK()
Functie
De YEARWEEK()
functie retourneert het jaar en de week voor een bepaalde datum.
Voorbeeld:
SELECT YEARWEEK('2023-01-01');
Resultaat:
+------------------------+ | YEARWEEK('2023-01-01') | +------------------------+ | 202301 | +------------------------+
Het jaar in het resultaat kan verschillen van het jaar in het datumargument voor de eerste en de laatste week van het jaar.
Dit is wat er gebeurt als we een jaar vooruit gaan:
SELECT YEARWEEK('2024-01-01');
Resultaat:
+------------------------+ | YEARWEEK('2024-01-01') | +------------------------+ | 202353 | +------------------------+
De YEARWEEK()
functie accepteert een optioneel tweede argument om de modus op te geven. Het werkelijke resultaat dat u met deze functie krijgt, hangt af van de modus die wordt gebruikt. Als het mode-argument wordt weggelaten, wordt de waarde van het default_week_format
systeemvariabele wordt gebruikt.
Zie hoe YEARWEEK()
Werkt in MariaDB voor meer informatie over de modi en voorbeelden van elk.