오늘은 포스트그레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' 카테고리의 다른 글
[PostgreSQL]포스트그레에서 특정 테이블 권한 확인 및 insert 등 권한 부여하기 (0) | 2024.03.13 |
---|---|
[PostgreSQL]포스트그레 인덱스 생성, 확인, 삭제하기 (0) | 2024.03.06 |
[PostgreSQL]포스트그레DB에서 계정별 테이블 권한 확인 및 설정 (0) | 2023.06.22 |
[PostgreSQL]포스트그레 캐릭터셋 확인하기 (0) | 2022.10.18 |