sql >> Databáze >  >> RDS >> Oracle

2 Funkce pro získání roku z data v Oracle

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. 
  1. 5 bezproblémových tipů pro použití příkazu SQL UPDATE s JOIN

  2. ekvivalent onbeforeprint() a onafterprint() pro prohlížeče bez IE

  3. Existuje schopnost ANY_VALUE pro mysql 5.6?

  4. mysqli nebo PDO - jaké jsou výhody a nevýhody?