2017-10-18 11 views
0

2つ以上のタイムスタンプ列を合計して減算したいとします。 enter image description here同じ行から時間値を合計/減算する方法

私は分または秒を丸めることができないので、私は、EPOCHを抽出しようとすると、後の操作をやっている:私は、PostgreSQLを使用していますし、あなたが見ることができるように、私は構造を持っている

最初のEXTRACTが列を認識するので、私はいつもエラーが発生しますが、同じSQLコマンドに2番目のEXTRACTを置くと、2番目の列が存在しないというエラーメッセージが表示されます。

私はあなたの例をあげる:ARRIVED_ATは

なぜこれが起こっているが存在しない

コラム:この例では

SELECT 
    EXAMPLE.PERSON_ID, 
    COALESCE(EXTRACT(EPOCH from EXAMPLE.LEFT_AT),0) + 
    COALESCE(EXTRACT(EPOCH from EXAMPLE.ARRIVED_AT),0) AS CREDIT 
FROM 
    EXAMPLE 
WHERE 
    EXAMPLE.PERSON_ID = 1; 

を私はエラーのようになるだろう? 同じ行から時間の値を合計/減算できますか?

+0

この表の実際の構造を投稿できますか? psqlやpgadminのような人気のあるツールから。 –

答えて

1

ARRIVED_ATは、列ではなく計算された値ですか?それらの列を表示したクエリ結果イメージを取得するために何を実行しましたか?

次のスクリプトは期待どおりの動作をしますので、照会しているテーブルの構造については、はお望みのものではありません。

CREATE SCHEMA so46801016; 
SET search_path=so46801016; 
CREATE TABLE trips (
    person_id serial primary key, 
    arrived_at time, 
    left_at time 
); 

INSERT INTO trips (arrived_at, left_at) VALUES 
    ('14:30'::time, '19:30'::time) 
, ('11:27'::time, '20:00'::time) 
; 

SELECT 
    t.person_id, 
    COALESCE(EXTRACT(EPOCH from t.left_at),0) + 
    COALESCE(EXTRACT(EPOCH from t.arrived_at),0) AS credit 
FROM 
    trips t; 

DROP SCHEMA so46801016 CASCADE; 
関連する問題