2010-08-05 8 views
1

나는 줄에 2 개의 행을 가지고 있는데, 하나는 줄리안 날짜 (1970 년 1 월 1 일 이후의 일 수, 그 날은 1 일)이고 두 번째 열은 지난 분 수입니다. 현재의 자정 (왜 이렇게했는지는 모르겠다.).postgres의 열에서 타임 스탬프 만들기

나는이 두 컬럼에서 타임 스탬프를 생성하기 위해 SQL 쿼리를 얻고 싶습니다.

데이터에 미리 액세스 할 수 있다면 SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'X DAYS' + INTERVAL 'Y MINUTES' AS my_time FROM mytable과 같은 작업을 수행 할 수 있지만 X 및 Y는 쿼리하는 테이블의 실제 멤버이므로 그렇게 간단하지는 않습니다.

누구든지 의견이 있습니까?

기본적으로, 나는 동등한 [법률] 솔루션을 찾고 있어요 :

SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'my_col1 DAYS' + INTERVAL 'my_col2 MINUTES' AS my_time FROm mytable 

난 내 서버 측 코드는 나를 위해 그것을 할 수 있습니다,하지만 난에 그것을 만들 수 있다면 나는 그것을 사랑 내 질문.

답변

3

당신은 간격 문자열을 구성하고 interval 유형에 캐스팅 할 수 있습니다

SELECT 
    timestamp '1970-01-01 00:00:00' + 
    cast(my_col1 || ' DAYS' AS interval) + 
    cast(my_col2 || ' MINUTES' AS interval) my_time FROM mytable 
+0

완벽. 이게 내가 원하는거야. 또한 일을 초로 변환 한 다음 분을 추가하고 그 중 타임 스탬프를 만들 수도 있습니다. 나는 그것이 "6과 1/6 다"라고 생각한다. 도움 주셔서 감사합니다. –

0

문자열 대체 또는 연결에 의존하지 않고 :

SELECT 
    timestamp '1970-01-01 00:00:00' + 
    my_col1 * interval '1 DAY' + 
    my_col2 * interval '1 MINUTE' FROM mytable