PostgreSQL에서 날짜와 시간을 하나의 필드로 저장할 수 있는 타입은 Timestamp입니다. 프로젝트를 진행하면서 이 TimeStamp에 대한 쿼리에 대해 정리해 보고자 합니다. 사용한 테이블은 여러분과 다를 수 있으니 쿼리 결과에 대해서는 유연하게 참고하시기 바랍니다. 그리고 Timestamp 타입의 필드는 sample_time입니다.
먼저 2021년 8월 21일 12시 30분 이후에 발생한 데이터를 얻어오기 위한 쿼리의 예는 다음과 같습니다.
SELECT * FROM earthquake WHERE sample_time > TO_TIMESTAMP('20210821 12:30', 'YYYYMMDD HH24:MI');
DB 테이블에는 8월 데이터만 저장되어 있는데, 결과는 다음과 같습니다.
그리고 2021년 8월 2일에 대한 데이터만을 뽑고자 할때의 쿼리 예는 다음과 같습니다.
SELECT * FROM weather WHERE weather_station_id = 170 AND sample_time::DATE = TO_TIMESTAMP('20210802', 'YYYYMMDD');
결과는 다음과 같았습니다.
마지막으로 일자별로 평균을 내기 위한 쿼리는 다음과 같습니다.
SELECT sample_time::DATE, AVG(rainfall), AVG(humidity), AVG(ground_heat) FROM weather WHERE weather_station_id = 170 GROUP BY sample_time::DATE ORDER BY sample_time::DATE;
결과는 다음과 같습니다.