И така, как работи заявката? Ето защо:
select to_char(to_date(:number,'j'),'jsp') from dual;
Ако погледнете най-вътрешната част на заявката to_date(:number,'j'), 'j' или J е юлианската дата (1 януари 4713 г. пр.н.е.), основно тази дата се използва за астрономически изследвания.
Така че to_date(:number,'j') взема числото, представено от число и се преструва, че е юлианска дата, преобразува в дата.
Ако прехвърлите 3 на число, така че то ще преобразува датата на 3 януари 4713 г. пр.н.е., това означава, че 3 се добавя към юлианската дата.
select to_char(to_date(3,'j'),'jsp') from dual;
Сега to_char(to_date(3,'j'),'jsp'), jsp =Сега; вземете тази дата(to_date(3,'j')) и изпишете юлианското число, което представлява, резултатът е:
TO_CH
-----
three
Има ограничение при използване на юлиански дати, то варира от 1 до 5373484. Ето защо, ако поставите стойностите след 5373484, ще ви изведе грешка, както е показано по-долу:
ORA-01854: julian date must be between 1 and 5373484
Здравейте на всички, тази тема е интересна. Спомням си, когато учех Oracle през 2005 г., един от инструкторите ме изиска да напиша PL/SQL код за преобразуване на числа в думи, кодът беше цели две страници, за да се постигне това.
Ето малко препратка, която може да ни помогне да разберем Юлианския ден, затова използваме буквата „j“ или „J“ по време на тази операция.
Първо има уебсайт, който има пример и обяснение за „Как да конвертирате число в думи с помощта на Oracle SQL Query“:
http://viralpatel.net/blogs/convert- number-into-words-oracle-sql-query/
Второ, ако искате да научите повече за „Юлианския ден“, отидете на:
http://en.wikipedia.org/wiki/Julian_day
Трето, ако искате да научите повече за това кой е предложил Юлианския ден през 1583 г., това е от "Джозеф Скалигер":
http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger
Няма смисъл да продължавам да повтарям какво е направил друг автор в тези уебсайтове, затова току-що публикувах връзката, която можете да получите достъп до тях и да прочетете това, което ви е необходимо, за да разберете как работи заявка като тази:
SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;
//Изход:два милиона четиристотин четиридесет и седем хиляди осемстотин тридесет и четири