Jak tedy dotaz funguje? Tady je důvod:
select to_char(to_date(:number,'j'),'jsp') from dual;
Pokud se podíváte do vnitřní části dotazu to_date(:number,'j'), 'j' nebo J je juliánské datum (1. ledna 4713 př.nl), v podstatě se toto datum používá pro astronomické studie.
Takže to_date(:number,'j') vezme číslo reprezentované číslem a předstírá, že je to juliánské datum, převede na datum.
Pokud předáte 3 do čísla, tak se datum převede na 3. leden 4713 př. n. l., znamená to, že k juliánskému datu se přidá 3.
select to_char(to_date(3,'j'),'jsp') from dual;
Now to_char(to_date(3,'j'),'jsp'), jsp =Now; vezměte toto datum(to_date(3,'j')) a napište juliánské číslo, které představuje, výstup je:
TO_CH
-----
three
Při používání juliánských dat existuje omezení, pohybuje se od 1 do 5373484. To je důvod, proč pokud vložíte hodnoty za 5373484, vyhodí vám chybu, jak je uvedeno níže:
ORA-01854: julian date must be between 1 and 5373484
Ahoj všichni, toto téma je zajímavé. Pamatuji si, že když jsem se v roce 2005 učil Oracle, jeden z instruktorů po mně požadoval, abych napsal kód PL/SQL pro převod čísel ve slovech, k dosažení tohoto cíle to byl celý dvoustránkový kód.
Zde je několik odkazů, které by nám mohly pomoci pochopit juliánský den, proto během této operace používáme písmeno 'j' nebo 'J'.
Nejprve je zde webová stránka s příkladem a vysvětlením „Jak převést číslo na slova pomocí Oracle SQL Query“:
http://viralpatel.net/blogs/convert- number-into-words-oracle-sql-query/
Za druhé, pokud se chcete dozvědět více o „Juliánském dni“, přejděte na:
http://en.wikipedia.org/wiki/Julian_day
Za třetí, pokud se chcete dozvědět více o tom, kdo navrhl juliánské číslo dne v roce 1583, bylo to od "Josepha Scaligera":
http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger
Nemá smysl, abych pokračoval v opakování toho, co udělal jiný autor na těchto webech, proto jsem právě zveřejnil odkaz, na který se můžete dostat a přečíst si, co potřebujete, abyste pochopili, jak takový dotaz funguje:
SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;
//Výstup:dva miliony čtyři sta čtyřicet sedm tisíc osm set třicet čtyři