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

2 Funkce, které vracejí sekundy z hodnoty Datetime v Oracle

Níže jsou uvedeny dvě funkce, které lze použít k vrácení části sekund z hodnoty datetime 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 sekundovou část.

Zde je příklad:

SELECT 
    EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;

Výsledek:

37

Je to SECOND klíčové slovo, které extrahuje sekundovou část z hodnoty datetime. To bude zahrnovat všechny zlomkové sekundy:

SELECT 
    EXTRACT(
        SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
        )
FROM DUAL;

Výsledek:

37.123456789

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 DATE .

TO_CHAR(datetime) Funkce

Můžeme také použít TO_CHAR(datetime) fungovat jako alternativní metoda pro získání složky sekund z hodnoty datetime.

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. Model formátu se skládá z jednoho nebo více prvků 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 sekundy, můžeme použít jeden z formátovacích prvků, které vracejí danou komponentu.

Existuje několik různých prvků formátu, které můžeme použít při vrácení komponenty sekund z hodnoty datetime.

Nejviditelnější z nich je SS prvek formátu:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;

Výsledek:

37

Jak vidíme, SS format element vrací pouze sekundovou část, ale ne zlomky sekund.

Zlomkové sekundy

Pokud chceme zahrnout zlomkové sekundy, můžeme použít FF prvek formátu. Můžeme také použít X k určení znaku radix (symbol používaný k oddělení části celého čísla od části zlomkové):

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Výsledek:

37.123456789

Je také možné omezit přesnost připojením čísla k FF část:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;

Výsledek:

37.12345

Číslo může být 19 .

I když můžete explicitně zadat svůj vlastní radixový znak – například tečku (. ), X format element může být užitečný pro přenos mezi různými jazyky/územími.

Když jsem spustil výše uvedené příklady, moje NLS_TERRITORY parametr byl nastaven na AUSTRALIA , což vedlo k tomu, že znak radix byl tečkou.

Zde je to, co se stane, když změním své NLS_TERRITORY parametr na GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Výsledek:

37,123456789

Nyní je znakem radix čárka.

Sekundy po půlnoci

Můžeme použít SSSSS pro návrat sekund po půlnoci:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;

Výsledek:

00065

  1. Existuje způsob, jak získat číslo řádku v Mysql jako rownum v oracle

  2. Získejte nejnovější datum ze seskupených dat MySQL

  3. Bezplatné metody pro opravu korupce indexu SQL Server

  4. Jak vytvořit omezení cizího klíče pomocí ON UPDATE CASCADE v SQL Server - SQL Server / Výukový program TSQL, část 79