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

2 způsoby, jak získat den od data v Oracle

Níže jsou uvedeny dvě funkce, které lze použít k vrácení dne z data v databázi Oracle.

EXTRACT() Funkce

EXTRACT(datetime) Funkce se používá k extrahování různých částí data a času z hodnoty datetime. To zahrnuje den.

Zde je příklad:

SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Výsledek:

25

Je DAY klíčové slovo, které extrahuje část dne z data. Další části data můžeme získat změnou na příslušné klíčové slovo. Například YEAR , MONTH , HOUR , MINUTE , atd.

Funkci můžeme použít i s jinými hodnotami data a času, jako je TIMESTAMP , atd.

TO_CHAR(datetime) Funkce

Můžeme také použít TO_CHAR(datetime) fungovat jako alternativní metoda k získání dne z data.

Tato funkce přijímá jako svůj první argument hodnotu datetime nebo interval 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 den, můžeme použít některý z prvků formátu pro extrakci dne.

Den v měsíci

Chcete-li získat den v měsíci (mezi 1-31), použijte DD prvek formátu:

SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;

Výsledek:

03

Název celého dne

Chcete-li získat název celého dne, použijte DAY :

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Výsledek:

SATURDAY

Název krátkého dne

Chcete-li získat zkrácený název dne, použijte DY :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Výsledek:

SAT

Den v roce

Chcete-li získat den v roce (mezi 1-366), použijte DDD prvek formátu:

SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;

Výsledek:

276

Den v týdnu

Chcete-li získat den v týdnu (mezi 1-7), použijte D prvek formátu:

SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Výsledek:

6

Tento prvek formátu závisí na území NLS relace. Hodnota NLS_TERRITORY mého systému parametr je AUSTRALIA , a proto je sobota považována za šestý den v týdnu.

Co se stane, když změním hodnotu svého NLS_TERRITORY parametr na AMERICA a znovu spusťte stejný dotaz:

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Výsledek:

7

Sobota je tentokrát považována za sedmý den v týdnu.


  1. Jak importovat a exportovat databázi MySQL

  2. Dejte si pozor na zavádějící data z SET STATISTICS IO

  3. Podmnožina databáze – Jak na to v IRI Voracity

  4. Používáte pojmenované instance? Otestujte připojení DAC!