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


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

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

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

  • 2016년 02월 04일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

조회수 288


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

  • 2016년 02월 04일에 작성됨
    Polyglot Programmer

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close