Dus hoe werkt de query? Wel, hier is waarom:
select to_char(to_date(:number,'j'),'jsp') from dual;
Als je in het binnenste deel van de query to_date(:number,'j') kijkt, is de 'j' of J de Juliaanse datum (1 januari 4713 v.Chr.), In principe wordt deze datum gebruikt voor astronomische studies.
Dus to_date(:number,'j') het neemt het getal dat wordt vertegenwoordigd door het getal en doet alsof het een juliaanse datum is, en zet het om in een datum.
Als u 3 doorgeeft aan nummer, zodat de datum wordt omgezet in 3 januari 4713 v.Chr., betekent dit dat 3 wordt toegevoegd aan de Juliaanse datum.
select to_char(to_date(3,'j'),'jsp') from dual;
Nu to_char(to_date(3,'j'),'jsp'), jsp =Nu; neem die datum (to_date(3,'j')) en spel het juliaanse getal dat het vertegenwoordigt, de output is:
TO_CH
-----
three
Er is een beperking bij het gebruik van Juliaanse datums, deze varieert van 1 tot 5373484. Daarom, als u de waarden na 5373484 plaatst, krijgt u een foutmelding zoals hieronder weergegeven:
ORA-01854: julian date must be between 1 and 5373484
Hallo allemaal, het is interessant dit onderwerp. Ik herinner me dat toen ik Oracle in 2005 leerde, een van de instructeurs me verplichtte een PL/SQL-code te schrijven om getallen in woorden om te zetten, het was een code van twee pagina's om dit te bereiken.
Hier is een verwijzing die ons zou kunnen helpen om de Juliaanse dag te begrijpen, daarom gebruiken we de letter 'j' of 'J' tijdens deze operatie.
Ten eerste is er een website met het voorbeeld en de uitleg over "Hoe getallen in woorden te converteren met behulp van Oracle SQL Query":
http://viralpatel.net/blogs/convert- aantal-in-woorden-oracle-sql-query/
Ten tweede, als je meer wilt weten over "Juliaanse dag", ga dan naar:
http://en.wikipedia.org/wiki/Julian_day
Ten derde, als je meer wilt weten over wie het Juliaanse dagnummer in 1583 heeft voorgesteld, het was door "Joseph Scaliger":
http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger
Het heeft voor mij geen zin om door te gaan met herhalen wat een andere auteur op deze websites heeft gemaakt, daarom heb ik zojuist de link geplaatst die je kunt openen en lees wat je nodig hebt om te begrijpen hoe een zoekopdracht als deze werkt:
SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;
//Output:twee miljoen vierhonderd zevenenveertigduizend achthonderd vierendertig