2014-11-06 38 views
0

我在Apex中遇到了日期格式問題。在我的數據庫中,一個日期格式爲'29 -05-1994'(DD-MM-YYYY),同樣的格式顯示在我的apex頁面,但不是在我的會話狀態(DD-MON-YY)中。通過一個程序,我嘗試計算某個人的年齡。結果是-79.61。這是不正確的,它與格式有關。當我在程序中將我的格式更改爲DD-MON-YYYY時,我會得到:2000。仍然不正確。有誰知道如何解決這個格式問題?在plsql過程中從頂點傳遞日期值

這裏是我的程序的一部分:

> v_datum date := to_date(V('P7_GEBOORTEDATUM'), 'DD-MON-YY'); 
> v_leeftijd number(10,2); 
> 
> -- check my age (in years) 
> v_leeftijd := (sysdate - v_datum)/365; 
+0

1.使用標籤'甲骨文apex',不'apex' 2在'P7_GEBOORTEDATUM'項的屬性的'Settings'部分檢查'Application properties' - 'Globalization'和'Format Mask' 3.嘗試在過程4中輸出變量的某處值。如果沒有任何幫助,可以在頂點註冊。 oracle.com,創建測試應用程序,併爲可以嘗試編輯應用程序的人員提供臨時訪問權限。 – Dmitry 2014-11-06 20:47:20

+0

您也可能需要熟悉RR格式 - 使用https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#i116004提供的信息很難判斷 – Scott 2014-11-10 04:24:26

回答

0

日期格式是Oracle的偏好。也就是說,您可以定義將被任何客戶端首選項覆蓋的服務器格式(默認)。 即服務器可以設置爲mm/dd/yy - >應用程序服務器可以設置爲使用dd-mm-rr(需要優先選擇) - >客戶端可以設置爲dd.mm.yyyy(需要優先選擇)

將日期視爲字符串並將它們來回轉換並且不採用日期格式總是最好的。

Date format set in APEX

切勿使用YY,如果值之下,在世紀之交。即低於2000及以上。 如果數值在1950以下,請不要使用RR。

總是最好使用YYYY並保證有正確的年份。

這樣你可以調用to_date(v('v7_geboortedatum'),'dd.mm.yyyy')並確保你正在使用正確的日期。

輪((SYSDATE - TO_DATE(V( 'v7_geboortedatum'), 'DD.MM.YYYY'))/ 365,2)