2016-05-23 11 views
2

Gibt es eine Funktion auf PostgreSQL, die mir die aktuelle Datetime für das vergangene Jahr oder x Anzahl der vergangenen Jahre erhalten? Ich weiß, dass ich das tun kann select now() - interval '1 year'; aber in einer Funktion, wie kann ich die Anzahl der Jahre in einer Variablen setzenPostgresql aktuelle Datetime für das vergangene Jahr

x := '2 year' 
Is it possible to do this select now() - interval x; 

Ich habe versucht, aber es mir

+0

Welche Version von postgresql verwenden Sie? – Pholochtairze

+0

die Version ist 9.5 – Jon

+0

'wählen Sie jetzt() - make_interval (Jahre: = 1);'? – Abelisto

Antwort

3

Wenn Sie Wollen Sie Variable verwenden können Sie dies tun:

CREATE OR REPLACE FUNCTION func(input integer) 
    RETURNS TIMESTAMP WITHOUT TIME ZONE AS 
    $BODY$ 
    declare 
     result TIMESTAMP WITHOUT TIME ZONE; 
    begin 
     select now() - (input || ' years')::interval into result; 
     return result; 
    end; 
    $BODY$ 
    LANGUAGE plpgsql VOLATILE 
1

Zum Zeitpunkt Fehler geben, verwenden Sie:

select current_date - interval '1 year' 

Für das Datum/Zeit:

select now() - interval '1 year' 
Verwandte Themen