Níže jsou uvedeny dvě funkce, které lze použít k extrahování roku z data v databázi Oracle.
EXTRACT() Funkce
Můžete použít EXTRACT(datetime) funkce pro extrahování různých částí data a času z hodnoty datetime. To zahrnuje rok.
Zde je příklad:
SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL; Výsledek:
2030
Je to YEAR klíčové slovo, které extrahuje část roku z data. Další části data můžeme získat změnou na příslušné klíčové slovo. Například MONTH , DAY , HOUR , MINUTE , atd.
Funkci můžeme použít i s jinými hodnotami data a času, jako je TIMESTAMP , atd.
Funkci lze také použít k vrácení roku z intervalu. Viz EXTRACT(datetime) Příklad funkce v Oracle.
TO_CHAR(datetime) Funkce
Můžeme také použít TO_CHAR(datetime) fungovat jako alternativní metoda k získání roku z data.
Tato funkce přijímá jako svůj první argument hodnotu datetime nebo hodnotu intervalu a jako druhý argument model formátu. Funkce pak převede hodnotu na datový typ VARCHAR2 v zadaném formátu.
Model formátu určuje formát, pro který má být vrácena hodnota datetime/interval. Formátový model se skládá z jednoho nebo víceprvků formátu. To nám umožňuje pečlivě vytvářet výsledky tak, aby odrážely náš požadovaný formát.
Pokud chceme vrátit pouze rok, můžeme použít YYYY prvek formátu:
SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL; Výsledek:
2027
Můžeme také použít alternativy pro model formátu. Můžeme například použít YY pro zadání dvoumístného roku:
SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL; Výsledek:
27
Ve skutečnosti můžeme mít kdekoli mezi jedním a čtyřmi Y znaků, v závislosti na našich požadavcích:
SELECT
TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL; Výsledek:
Y YY YYY YYYY ____ _____ ______ _______ 7 27 027 2027
Zahrnout čárku
Můžeme použít Y,YYY format element, pokud chceme do výstupu zahrnout čárku:
SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL; Výsledek:
2 027
Vysvětlete rok
Můžeme dokonce použít YEAR format element, který vrátí zadaný rok:
SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL; Výsledek:
DVACET DVACET SEDM
Data před naším letopočtem
Můžeme také uspokojit data před naším letopočtem tím, že před náš prvek formátu roku přidáme S . Tímto způsobem se před výsledek přidá znaménko mínus, podle potřeby:
SELECT
TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL; Výsledek:
SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY
Alternativně můžeme použít BC nebo BC. prvky formátu pro data před naším letopočtem:
SELECT
TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL; Výsledek:
YYYY YEAR YYYY YEAR __________ _______________ __________ _______________ 0250 př.nl 250 př.nl 0250 př.nl 250 n.l.