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.