Кто-нибудь знает, как преобразовать сегодняшнюю юлианскую дату (2456425) в юлианскую дату JDE (113133)?
Спасибо
Кто-нибудь знает, как преобразовать сегодняшнюю юлианскую дату (2456425) в юлианскую дату JDE (113133)?
Спасибо
Мне кажется, что сегодняшняя юлианская дата (по крайней мере, с точки зрения Oracle) должна быть 2456426. Но, ладно, если в ваших условиях сегодня (13 мая 2013 г.) юлианская дата 2456425, то следующий код должен дать вам то, что вы хотите:
DECLARE
nJulian NUMBER := 2456425;
nCentury NUMBER;
nYear NUMBER;
nDay NUMBER;
nJDEdate NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('Date=' || TO_DATE(nJulian+1, 'J'));
nCentury := TRUNC(TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) / 100) - 19;
DBMS_OUTPUT.PUT_LINE('nCentury=' || nCentury);
nYear := TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) -
(TRUNC(TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'YYYY')) / 100) * 100);
DBMS_OUTPUT.PUT_LINE('nYear=' || nYear);
nDay := TO_NUMBER(TO_CHAR(TO_DATE(nJulian+1, 'J'), 'DDD'));
DBMS_OUTPUT.PUT_LINE('nDay=' || nDay);
nJDEdate := (nCentury * 100000) + (nYear * 1000) + nDay;
DBMS_OUTPUT.PUT_LINE('nJDEdate=' || nJDEdate);
END;
Делитесь и наслаждайтесь.