2017-10-18 13 views
0

두 개 이상의 타임 스탬프 열을 더하고 뺍니다.어떻게하면 같은 행에서 시간 값을 더하기/빼기 할 수 있습니까?

내가 PostgreSQL을 사용하고 당신이 볼 수 있듯이 나는 구조를 가지고 : enter image description here

내가 분 또는 초를 반올림 할 수없는, 그래서 나는 EPOCH를 추출하기 위해 노력하고있어 및 후 작업을하고, 첫 번째 EXTRACT이 열을 인식하기 때문에 항상 오류가 발생하지만 동일한 SQL 명령에 두 번째 EXTRACT을 넣을 때 두 번째 열이 없다는 오류 메시지가 나타납니다.

내가 당신에게 예를 들어주지 : 같은

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; 

I 오류가 발생하는 것이 예를 : 열 ARRIVED_AT이

존재하지 않는

왜이 일어나고있다 ? 동일한 행에서 시간 값을 더하거나 뺄 수 있습니까?

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