0

PL/SQL の sysdate フォーマットに問題があります。その日の年齢を計算しようとします (したがって、20.44 のような値が返されるはずです)。ただし、sysdate はこの形式では機能せず、値 v_leeftijd は -2000.91 を返し続けます。それは私の年齢ではないことは明らかです。これを解決するにはどうすればよいですか?次のコードがあります。

declare
v_vandaag date := to_date(sysdate, 'DD-MM-YYYY');
v_geboortedatum date := to_date('29-05-2014', 'DD-MM-YYYY');
v_leeftijd number(10,2);

begin

--leeftijd/dagen = leeftijd in jaren
v_leeftijd := (v_vandaag - v_geboortedatum)/365;

dbms_output.put_line(v_leeftijd);

end;
4

1 に答える 1

2

sysdateはすでに日付です:

SET SERVEROUTPUT ON
declare
    v_geboortedatum date := to_date('29-05-2014', 'DD-MM-YYYY');
    v_leeftijd number(10,2);
begin
    --leeftijd/dagen = leeftijd in jaren
    v_leeftijd := (sysdate - v_geboortedatum)/365;

    dbms_output.put_line(v_leeftijd);
end;
/
于 2014-10-30T23:53:01.460 に答える