1

pl/pgsql 関数で、指定された日付と整数をタイムスタンプに変換したいと考えています。私は以前にpl/pgsqlで何もしたことがないので、やや途方に暮れています。

Pablo Santa Cruz の回答のおかげで、ここまで到達しました。

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

ただし、これはまだ私にはうまくいかないようです。これは、Ubuntu で pgadmin3 を使用して発生するエラーです。

ERROR:  syntax error at end of input
LINE 9: $$ LANGUAGE plpgsql;
        ^

********** Error **********

ERROR: syntax error at end of input
SQL state: 42601
Character: 377

どんな助けでも大歓迎です:)

4

2 に答える 2

1

あなたが行方不明です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;
于 2010-09-02T02:28:54.193 に答える
1

戻り値を次のように変更してみてください。

RETURN (mydate::text || ' ' || timestring)::timestamp;
于 2010-08-30T12:45:20.773 に答える