嗨我想創建一個公曆到儒略日期的函數&朱利安到格里高利,這樣我就可以在將來的報表/查詢/ vbs腳本中使用這些函數,而不必在前進的所有內容中包含這些。這是一個oracle數據庫,我們使用的格式是ddmmyyyy。我曾嘗試使用下面的函數返回今天的朱利安日期,但目前爲止沒有運氣從格雷格轉換爲朱利安。轉換陽曆日期到朱利安
select sysdate, to_char(sysdate,'YDDD') "YDDD" from dual;
嗨我想創建一個公曆到儒略日期的函數&朱利安到格里高利,這樣我就可以在將來的報表/查詢/ vbs腳本中使用這些函數,而不必在前進的所有內容中包含這些。這是一個oracle數據庫,我們使用的格式是ddmmyyyy。我曾嘗試使用下面的函數返回今天的朱利安日期,但目前爲止沒有運氣從格雷格轉換爲朱利安。轉換陽曆日期到朱利安
select sysdate, to_char(sysdate,'YDDD') "YDDD" from dual;
有一個有用的鏈接here你可以使用。
格魯吉亞朱利安
CREATE OR REPLACE FUNCTION DATE2JDE (yyyymmdd IN NUMBER)
RETURN NUMBER
IS
v_jdedate NUMBER(6,0) := 0;
BEGIN
IF yyyymmdd BETWEEN 19000000 AND 28000000 THEN
v_jdedate := TO_NUMBER(TO_CHAR(TO_DATE(yyyymmdd,'YYYYMMDD'),'YY YYDDD'))-1900000;
ELSE
RAISE_APPLICATION_ERROR(-20000, 'Invalid date in DATE2JDE - ' || yyyymmdd ||'.');
END IF;
RETURN(v_jdedate);
END;
朱利安格魯吉亞
v_oracle_date := to_date(to_char(v_JDEDate+1900000),'YYYYDDD')
v_char_year := to_char(to_date(to_char(v_JDEDate+1900000),'YYYYDD D'),'YYYY')
v_char_month := to_char(to_date(to_char(v_JDEDate+1900000),'YYYYDD D'),'MM')
v_char_day := to_char(to_date(to_char(v_JDEDate+1900000),'YYYYDD D'),'DD')
v_num_year := to_number(to_char(to_date(to_char(v_JDEDate+190000 0),'YYYYDDD'),'YYYY')
v_num_month := to_number(to_char(to_date(to_char(v_JDEDate+190000 0),'YYYYDDD'),'MM')
v_num_day := to_number(to_char(to_date(to_char(v_JDEDate+190000 0),'YYYYDDD'),'DD')
Oracle已經有限的內置支持Julian日期:
SELECT TO_NUMBER (TO_CHAR (SYSDATE, 'J')) TO_JULIAN, TO_DATE (2457259, 'J') TO_GREGORIAN FROM DUAL