본문 바로가기
컴퓨터관련/postgreSQL

[postgreSQL]포스트그레SQL 날짜 및 시간 계산

by 빛과 어둠사이 2023. 6. 1.
728x90
반응형
SMALL

오늘은 포스트그레SQL에서 현재 날짜 확인 및 시간을 계산하는 방법을 정리해보고자 합니다.

오라클에서는 sysdate로 했었는데,

postgreSQL에서는 sysdate 함수는 없습니다.

포스트그레에서는 포스트그레에서 지원하는 함수를 써야 되어서

이 부분을 정리해보도록 하겠습니다.

 

 

 

 

1. 현재 날짜 확인 하기

오라클에서는 sysdate 함수를 이용해서 했었는데 포스트그레에서는 now() 함수를 이용해서

현재 날짜를 확인할 수 있습니다.

now()함수를 이용하는 방법은 다음과 같습니다.

select now();

위처럼 해주시면 되십니다.

오라클에서는 from dual 을 써주어야 했는데,

postgreSQL에서는 from 절이 필요가 없습니다.

 

위처럼 쿼리를 작성하고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

위처럼 나오는 것을 확인할 수 있습니다.

현재 날짜 및 시간에 대해서 확인할 수 있습니다.

 

 

 

그런데 위처럼 나오게 되면 보기가 안좋을 수 있습니다.

년월일만 알고 싶을 때는 오라클에서와 동일한 함수를 사용해주시면 되십니다.

to_char 함수를 이용해주시면 되십니다.

select to_char(now(), 'yyyymmdd');

위처럼 해주시면 되십니다.

그러면 년월일만 나오게 됩니다.

위처럼 쿼리를 작성하고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

 

위처럼 년월일만 나오게 되는 것을 확인할 수 있습니다.

 

 

 

 

그리고 오라클에도 있는지 저는 잘 모르겠는데,

날짜, 시간만 별도로 제공해주는 명령어도 

postgreSQL에는 있네요.

 

쿼리를 이용하여 확인해보도록 하겠습니다.

쿼리는 아래와 같습니다.

select now(), current_date, current_time;

위처럼 쿼리를 작성해주시면 되십니다.

 

current_date는 날짜만을 가져오는 것이고,

current_time은 현재 시간만 가져오는 것입니다.

 

위처럼 쿼리를 작성하고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

위처럼 간단하게 명령어로 시간 및 날짜를 확인할 수도 있습니다.

 

 

반응형

 

2. 날짜 및 시간 계산하기

이제는 날짜 및 시간을 계산하는 방법을 정리해보고자 합니다.

현재 기준 얼마의 시간이 지난 시간, 이전의 시간 등을 확인할 수 있습니다.

포스트그레SQL에서는 interval 명령어를 이용해서

시간을 계산할 수 있습니다.

 

샘플로 현재보다 10초 이후의 시간을 확인해보도록 하겠습니다.

쿼리는 아래와 같습니다.

 

select now(), now()+interval '10 sec'

위처럼 해주시면 10초 이후의 시간을 가져오게 되는 것입니다.

 

위처럼 쿼리를 작성해주고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

위처럼 현재보다 10초 이후의 시간이 나오게 되는 것입니다.

 

 

위 쿼리에서는 10초 이후의 시간을 가져와봤습니다.

그러면 10초 이전의 시간을 가져오기 위해서는 어떻게 해야 할까요?

위 쿼리에 있는 +(플러스)를 -(마이너스)로만 변경을 해주면 이전 시간을 가져오는 것입니다.

 

예제 쿼리는 다음과 같습니다.

select now(), now()-interval '10 sec'

위처럼 해주시면 되십니다.

그러면 10초 이전의 시간을 가져오는 것입니다.

 

위처럼 작성하고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

위처럼 현재보다 10초 이전의 시간을 가져오는 것을 확인할 수 있습니다.

 

 

 

제가 샘플로 했던 것은 초를 가져오기 위한 것이였습니다.

초 차이를 계산하기 위해서 sec를 넣었습니다.

초가 아닌 다른 분, 시간, 날 등을 하기 위해서는 sec 대신에 명령어만 바꿔주면 됩니다.

명령어는 다음과 같습니다.

 

sec : 초
min : 분
hour : 시간
day : 날
week : 주
month : 월
year : 년

 

명령어만 위의 것으로 변경을 해주면

해당 시간에 맞춰서 시간이 계산되는 것을 확인하실 수 있습니다.

sec 대신에 min, hout, day 등을 입력하면

원하시는 초, 시, 분 등등 시간, 날짜 등을 계산할 수 있습니다.

 

 

 

3. 시간 계산 응용

지금까지는 간단한 시간 계산하는 방법을 정리해보았습니다.

그런데 조금 더 특이하다고 할 수 있는 시간 계산 방법에 대해서

정리를 해보고자 합니다.

 

 

지금 시간보다 12시간 30분 10초 이후의 시간을 알고 싶다고 했을 때

위처럼 했을 때는 12시간 이후 시간을 가져오고,

그 다음 30분 이후 시간을 가져오고,

10초 이후의 시간을 가져와야 합니다.

이것을 한번에 가져올 수 있는 방법도 있습니다.

 

 

select now(), now() + interval '12h 30m 10s'

쿼리를 위처럼 해주시면 되십니다.

위처럼 하게 되면 12시간 30분 10초 이후의 시간을

확인할 수 있습니다.

 

위처럼 쿼리를 작성하고 실행을 하게 되면

결과는 아래처럼 나오게 됩니다.

 

 

 

위처럼 현재 시간 기준 12시간 30분 10초 이후의 시간이 

나오는 것을 알 수 있습니다.

 

 

 

 

 

오늘은 포스트그레SQL에서 현재 시간 확인 및

날짜, 시간 계산하는 방법에 대해서

정리를 해보았습니다.

 

날짜 및 시간 계산하는 것은 여러가지 상황에서 많이 사용을 하는 것입니다.

그렇기 때문에 알고 있어야 하는 내용입니다.

이글을 참조하셔서 날짜 및 시간 계산을 하실 때 

사용해주시면 좋을 것 같습니다.

 

 

 

 

이상으로 postgreSQL에서 현재 날짜 확인 및 날짜, 시간 계산하는 방법이였습니다~

 

 

 

 

 

 

모두를 위한 PostgreSQL, 비제이퍼블릭

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

728x90
반응형
LIST