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


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

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

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

  • 2016년 02월 04일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 요즘은 개발은 주로 레일즈 사이트 수정하는 일을 하고, 예전에는 모바일 게임도 조금 만들어 봤습니다.

조회수 398


Banner slack 2x iegsyt

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