2

入力タイムスタンプを PDT に変換する postgres 関数を作成しようとしています。これが私のコードです:

CREATE OR REPLACE FUNCTION getPdtTimestamp(inTS TIMESTAMP) RETURNS TIMESTAMP AS $$
DECLARE
    outTS TIMESTAMP;
BEGIN
    SELECT TIMESTAMP with time zone inTS AT TIME ZONE 'PDT' INTO outTS;
    RETURN outTS;
END;
$$ LANGUAGE plpgsql;

ここで得られるエラーは次のとおりです。

syntax error at or near "inTS"

私の目標は、次のようなクエリの関数を作成することです。

SELECT TIMESTAMP with time zone '2012-01-01 12:00:00' AT TIME ZONE 'PDT';
// returns a value

前もって感謝します

4

1 に答える 1

4

これはうまくいくはずです:

CREATE FUNCTION getPdtTimestamp(timestamp) RETURNS TIMESTAMP AS $$ 
    SELECT $1::TIMESTAMP with time zone  AT TIME ZONE 'PDT';
$$ LANGUAGE SQL;
于 2013-06-19T06:35:34.813 に答える