0

Apex で日付形式に問題があります。私のデータベースでは、日付は '29-05-1994' (DD-MM-YYYY) の形式になっています。同じ形式が頂点ページに表示されていますが、セッション状態 (DD-MON-YY) には表示されていません。手順を使用して、誰かの年齢を計算しようとします。結果は -79.61 です。それは正しくありません。形式に関係があります。手順で形式を DD-MON-YYYY に変更すると、次のようになります。まだ正しくありません。このフォーマットの問題を解決する方法を知っている人はいますか?

これが私の手順の一部です:

> 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;
4

1 に答える 1

0

日付形式は Oracle の設定です。つまり、クライアント側の設定によって上書きされるサーバー形式 (デフォルト) を定義できます。つまり、サーバーは mm/dd/yy に設定できます --> アプリケーション サーバーは dd-mm-rr を使用するように設定できます (優先されます) --> クライアントは dd.mm.yyyy に設定できます (優先されます)

日付を文字列として扱い、前後に変換し、日付形式を想定しないことが常に最善です。

APEXで設定された日付形式

値が 20 世紀前後の場合は、YY を使用しないでください。つまり、2000 未満およびそれ以上。値が 1950 未満またはそれ以上の場合は、RR を使用しないでください。

常に YYYY を使用し、正しい年が保証されるようにすることをお勧めします。

このようにして、 to_date(v('v7_gebootedatum'),'dd.mm.yyyy') を呼び出して、正しい日付で作業していることを確認できます。

ラウンド ( (sysdate - to_date(v('v7_gebootedatum'),'dd.mm.yyyy')) / 365, 2)

于 2014-11-11T01:22:09.223 に答える