Při používání databáze Oracle můžete použít TO_CHAR(datetime)
funkce pro vrácení různých částí hodnoty datetime, včetně zlomků sekund.
Chcete-li vrátit část zlomků sekund z hodnoty datetime, použijte FF
prvek formátu.
Příklad
Zde je příklad k demonstraci:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;
Výsledek:
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', 'FF5')
FROM DUAL;
Výsledek:
12345
Číslo může být 1
až 9
.
Předřadit sekundovou část
Ve výše uvedených příkladech jsem vrátil pouze část zlomků sekund a nic jiného.
Můžeme zahrnout sekundovou část i zlomkovou sekundu. Chcete-li to provést, použijte SS
. 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
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.
Ve skutečnosti je to NLS_NUMERIC_CHARACTERS
parametr, který určuje, jaký znak se použije pro znak radix. Nicméně, změna NLS_TERRITORY
parametr implicitně mění NLS_NUMERIC_CHARACTERS
parametr. Můžete také explicitně aktualizovat NLS_NUMERIC_CHARACTERS
Pokud chcete, v takovém případě vaše NLS_TERRITORY
parametr zůstane nezměněn.
Úplný seznam prvků formátu, které lze použít k formátování hodnot datetime, naleznete v části Seznam prvků formátu Datetime v Oracle.