wie int zu Zeit in einer pl / pgsql Funktion konvertieren
-
25-09-2019 - |
Frage
Ich mag einen bestimmten Zeitpunkt und integer zu einem Zeitstempel in einer pl / pgsql Funktion konvertieren. Ich habe nie etwas getan mit pl / pgsql vor, so dass ich etwas ratlos bin.
Durch die Antwort von Pablo Santa Cruz, hätte es bis hierher:
CREATE OR REPLACE FUNCTION to_my_timestamp(mydate date, timeint integer) RETURNS timestamp AS $$
DECLARE
myhours integer := timeint / 10000;
myminutes integer := timeint % 10000 / 100;
myseconds integer := timeint % 100;
timestring text := myhours || ':' || myminutes || ':' || myseconds;
BEGIN
RETURN (mydate::text || ' ' || timestring)::timestamp;
$$ LANGUAGE plpgsql;
select to_my_timestamp('2010-08-12',123456);
Allerdings scheint dies noch nicht, für mich zu arbeiten. Dies ist der Fehler, den ich pgadmin3 auf Ubuntu erhalten mit:
ERROR: syntax error at end of input
LINE 9: $$ LANGUAGE plpgsql;
^
********** Error **********
ERROR: syntax error at end of input
SQL state: 42601
Character: 377
Jede Hilfe wird sehr geschätzt:)
Lösung
Versuchen Sie, Ihren Rückgabewert ändert an:
RETURN (mydate::text || ' ' || timestring)::timestamp;
Andere Tipps
Du fehlst END;
:
CREATE OR REPLACE FUNCTION to_my_timestamp(mydate date, timeint integer) RETURNS timestamp AS $$
DECLARE
myhours integer := timeint / 10000;
myminutes integer := timeint % 10000 / 100;
myseconds integer := timeint % 100;
timestring text := myhours || ':' || myminutes || ':' || myseconds;
BEGIN
RETURN (mydate::text || ' ' || timestring)::timestamp;
END;
$$ LANGUAGE plpgsql;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow