Postgresql에서 Timestamp의 값과 현재 사이에 몇시간이나 지났는지 어떻게 알 수 있나요?

조회수 6543회

Postgresql DB를 사용중인데요. created_at 칼럼값을 읽어와서, 생성된지 몇시간이나 된 row인지를 확인하고 싶습니다.

select  EXTRACT(HOUR FROM (NOW() - created_at)) as age
from table

이렇게 하니까 값들이 이상하게 나오네요.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    EXTRACT 함수는 현재 시간과 created_at의 차이에서 시간에 해당하는 부분만 가져오기 때문에 그렇습니다. 예를 들어 차이가 1일 20시간 35분이라고 하면 20이 되는 것이죠.

    현재 시간과의 차이를 가져오려면 다음과 같이 하면 됩니다.

    SELECT (EXTRACT(EPOCH FROM NOW() - created_at)/3600)::Integer AS hours
    FROM table
    

    참고: http://www.postgresql.org/docs/current/static/functions-datetime.html

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)