본문 바로가기
Database

[PostgreSQL] 특정 시간 내 등록된 데이터 조회

by 주리니e 2022. 8. 10.
728x90

[PostgreSQL] 특정 시간 내 등록된 데이터 조회

 

특정 시간 이내에 다수의 데이터를 인서트하는 자동화 공격 취약점을 조치하기 위해서 특정 시간내에 등록된 데이터를 조회하는 PostgreSQL 쿼리문을 작성하였다. 물론 실제 사용하는 쿼리문에는 IP도 Where 절에 추가시켜 특정 사용자의 데이터만 조회해야 하며 정해놓은 데이터 수가 초과하는 등록이 발생하면 더 이상 인서트할 수 없도록 조치하면 된다.
CURRENT_TIMESTAMP(표준 SQL) 함수를 이용하였으며 결과적으로 같은 값을 리턴하는 NOW() (비표준 SQL) 함수를 써도 상관이 없다. 필자는 표준 SQL인 CURRENT_TIMESTAMP를 이용하여 작성하였다.

  • 30분 이내 등록된 데이터 조회
SELECT   *
FROM     tb_table
WHERE    created BETWEEN CURRENT_TIMESTAMP - interval '30 minutes' AND CURRENT_TIMESTAMP
ORDER BY created DESC;

 

  • 2시간 30분 이내 등록된 데이터 조회
SELECT   *
FROM     tb_table
WHERE    created BETWEEN CURRENT_TIMESTAMP - interval '2 hours 30 minutes' AND CURRENT_TIMESTAMP
ORDER BY created DESC;

 

  • 하루 이내 등록된 데이터 조회
SELECT   *
FROM     tb_table
WHERE    created BETWEEN CURRENT_TIMESTAMP - interval '1 day' AND CURRENT_TIMESTAMP
ORDER BY created DESC;

 

  • 3년 이내 등록된 데이터 조회
SELECT   *
FROM     tb_table
WHERE    created BETWEEN CURRENT_TIMESTAMP - interval '3 years' AND CURRENT_TIMESTAMP
ORDER BY created DESC;
728x90

댓글