Oracle과 PostgreSQL에서 날짜에 대해서 월/일/시/분/초 단위로 덧셈 계산을 하는 방법을 비교 해 보았습니다. Oracle에서 PostgreSQL로 시스템을 변경 하는 경우 도움이 되길 바랍니다.
주의)오라클은 다음 SQL문을 실행하여 SYSDATE출력으로 시분초까지 표시하도록 합니다.
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
1개월 더하기
Oracle | PostgreSQL |
---|---|
SELECT SYSDATE, ADD_MONTHS(SYSDATE , 1) FROM DUAL; | SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP + interval ‘1 month’; |
2022/09/10 00:22:39 2022/10/10 00:22:39 | 2022-09-09 23:51:10.751858+09 | 2022-10-09 23:51:10.751858+09 |
9월 -> 10월 | 9월 -> 10월 |
1일 더하기
Oracle | PostgreSQL |
---|---|
SELECT SYSDATE, SYSDATE + 1 FROM DUAL; | SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP + interval ‘1 day’; |
2022/09/10 00:23:17 2022/09/11 00:23:17 | 2022-09-09 23:51:58.290754+09 | 2022-09-10 23:51:58.290754+09 |
10일 -> 11일 | 9일 -> 10일 |
1시간 더하기
Oracle | PostgreSQL |
---|---|
SELECT SYSDATE, SYSDATE + 1 / 24 FROM DUAL; | SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP + interval ‘1 hour’; |
2022/09/10 00:23:56 2022/09/10 01:23:56 | 2022-09-10 00:01:36.228008+09 | 2022-09-10 01:01:36.228008+09 |
0시 -> 1시 | 0시 -> 1시 |
1분 더하기
Oracle | PostgreSQL |
---|---|
SELECT SYSDATE, SYSDATE + 1 / (24 * 60) FROM DUAL; | SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP + interval ‘1 minutes’; |
2022/09/10 00:24:35 2022/09/10 00:25:35 | 2022-09-10 00:02:57.214628+09 | 2022-09-10 00:03:57.214628+09 |
24분 -> 25분 | 2분 -> 3분 |
1초 더하기
Oracle | PostgreSQL |
---|---|
SELECT SYSDATE, SYSDATE + 1 / (24 * 60 * 60) FROM DUAL; | SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP + interval ‘1 seconds’; |
2022/09/10 00:25:30 2022/09/10 00:25:31 | 2022-09-10 00:03:45.305899+09 | 2022-09-10 00:03:46.305899+09 |
30초 -> 31초 | 45초 -> 46초 |