Programing

postgresql datetime에 일 수를 추가하는 방법

crosscheck 2020. 12. 1. 07:41
반응형

postgresql datetime에 일 수를 추가하는 방법


다음 표가 projects있습니다.

id title        created_at                     claim_window
1  Project One  2012-05-08 13:50:09.924437     5
2  Project Two  2012-06-01 13:50:09.924437     10

A) 계산으로 마감일을 찾고 싶습니다 deadline = created_at + claim_window(No. of days).

다음과 같은 것.

id title        created_at                     claim_window deadline
1  Project One  2012-05-08 13:50:09.924437     5            2012-05-13 13:50:09.924437
2  Project Two  2012-06-01 13:50:09.924437     10           2012-06-11 13:50:09.924437

B] 마감일이 지난 프로젝트도 찾고 싶습니다.

id title        created_at                     claim_window deadline
1  Project One  2012-05-08 13:50:09.924437     5            2012-05-13 13:50:09.924437

나는 다음과 같은 것을 시도합니다.

SELECT * FROM "projects" WHERE (DATE_PART('day', now()- created_at) >= (claim_window+1))

그러나 어떤 이유로 작동하지 않습니다.


이것은 당신에게 마감일을 줄 것입니다 :

select id,  
       title,
       created_at + interval '1' day * claim_window as deadline
from projects

마감일이 지난 모든 프로젝트를 얻으려면 다음을 사용하십시오.

select *
from (
  select id, 
         created_at + interval '1' day * claim_window as deadline
  from projects
) t
where localtimestamp at time zone 'UTC' > deadline

나에게는 간격의 값뿐만 아니라 전체 간격을 작은 따옴표로 묶어야했습니다.

select id,  
   title,
   created_at + interval '1 day' * claim_window as deadline from projects   

대신에

select id,  
   title,
   created_at + interval '1' day * claim_window as deadline from projects   

Postgres 날짜 / 시간 함수

참고 URL : https://stackoverflow.com/questions/10909902/how-to-add-number-of-days-in-postgresql-datetime

반응형