Så hvordan fungerer forespørgslen? Nå, her er hvorfor:
select to_char(to_date(:number,'j'),'jsp') from dual;
Hvis du ser på den inderste del af forespørgslen to_date(:tal,'j'), er 'j' eller J den julianske dato (1. januar 4713 f.Kr.), dybest set er denne dato blevet brugt til astronomiske undersøgelser.
Så to_date(:tal,'j') tager det tallet repræsenteret ved tal og foregiver, at det er en juliansk dato, konverter til en dato.
Hvis du sender 3 til nummer, så det vil konvertere dato til 3. januar 4713 f.Kr., betyder det, at 3 er tilføjet til den julianske dato.
select to_char(to_date(3,'j'),'jsp') from dual;
Nu to_char(to_date(3,'j'),'jsp'), jsp =Nu; tag den dato(to_date(3,'j')) og stav det julianske tal, den repræsenterer, outputtet er:
TO_CH
-----
three
Der er en begrænsning, når du bruger julianske datoer, den varierer fra 1 til 5373484. Det er derfor, hvis du sætter værdierne efter 5373484, vil det give dig en fejl som vist nedenfor:
ORA-01854: julian date must be between 1 and 5373484
Hej alle sammen, det er interessant dette emne. Jeg kan huske, da jeg lærte Oracle i 2005, en af instruktørerne krævede, at jeg skulle skrive en PL/SQL-kode for at konvertere tal til ord, det var en kode på hele to sider for at nå dette.
Her er en reference, der kunne hjælpe os til at forstå den julianske dag, det er derfor, vi bruger bogstavet 'j' eller 'J' under denne operation.
Først er der et websted, der har eksemplet og forklaringen om "Sådan konverteres tal til ord ved hjælp af Oracle SQL-forespørgsel":
http://viralpatel.net/blogs/convert- tal-i-ord-oracle-sql-forespørgsel/
For det andet, hvis du vil vide mere om "Julian dag", gå til:
http://en.wikipedia.org/wiki/Julian_day
For det tredje, hvis du vil vide mere om, hvem der foreslog det julianske dagnummer i 1583, var det af "Joseph Scaliger":
http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger
Det giver ikke mening for mig at fortsætte med at gentage, hvad en anden forfatter på disse websteder har lavet, det er derfor, jeg har lagt linket op, du kan få adgang til dem og læse, hvad du behøver for at forstå, hvordan en forespørgsel som denne fungerer:
SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;
//Output:to millioner fire hundrede syvogfyrre tusinde otte hundrede fireogtredive