programing

Oracle SQL에서 1시간 추가

lastcode 2023. 6. 11. 10:43
반응형

Oracle SQL에서 1시간 추가

나는 단지 한 시간을 가치에 추가하려고 노력하고 있다, 내가 어디서 이것을 하고 있고 왜 하는지는 다소 복잡하지만 기본적으로 나는 단지 이런 것을 질문할 필요가 있다.

select DATE_ADD(hh,1,'2014-10-15 03:30:00 pm') from dual

dateAdd 또는 date_add를 사용하라는 오래된 글을 계속 읽지만 잘못된 식별자 오류가 계속 발생합니다.

select sysdate + 1/24 from dual;

sysdate는 DATE 유형을 반환하는 인수가 없는 함수입니다.
1/24는 날짜에 1시간을 추가합니다.

select to_char(to_date('2014-10-15 03:30:00 pm', 'YYYY-MM-DD HH:MI:SS pm') + 1/24, 'YYYY-MM-DD HH:MI:SS pm') from dual;

간격 사용:

select some_date_column + interval '1' hour 
from your_table;

INTERVAL 유형을 사용하거나 계산된 숫자 값만 추가할 수 있습니다. "1"은 "1일"과 같습니다.

첫 번째 방법:

select date_column + INTERVAL '0 01:00:00' DAY TO SECOND from dual;

두 번째 방법:

select date_column + 1/24 from dual;

첫 번째 방법은 "1일 3시간 25분 49초"와 같이 복잡한 값을 추가해야 할 때 더 편리합니다.참고 항목: http://www.oracle-base.com/articles/misc/oracle-dates-timestamps-and-intervals.php

또한 Oracle에는 Day to Second와 Year to Month의 두 가지 간격 유형이 있습니다.저는 한 가지 간격 유형이 더 좋겠지만, 오라클에 있는 사람들이 그들이 무엇을 하는지 알았으면 합니다;)

이전 방법:

SELECT DATE_COLUMN + 1 is adding a day
SELECT DATE_COLUMN + N /24 to add hour(s) - N being number of hours
SELECT DATE_COLUMN + N /1440 to add minute(s) - N being number of minutes
SELECT DATE_COLUMN + N /86400 to add second(s) - N being number of seconds

INTERVAL 사용:

SELECT DATE_COLUMN + INTERVAL 'N' HOUR or MINUTE or SECOND - N being a number of hours or minutes or seconds.

에서 추가/제외하는 방법DATE,넌 두가지 옵션이 있다 :

방법 #1: 가장 쉬운 방법은 사용하는 것입니다.+그리고.-일, 시간, 분, 초 등을 추가/축소합니다.a부터DATE,그리고.ADD_MONTHS()월과 년을 추가/축소하는 기능DATE왜냐고요? 일로부터 시간 및 더 작은 단위(1시간 = 1/24일), (1분 = 1/1440일) 등을 얻을 수 있기 때문입니다.그러나 당신은 월과 년을 얻을 수 없습니다. 그것은 월과 년 자체에 달려 있기 때문입니다.ADD_MONTHS() 달에서 몇 년(1년 = 12개월)을 얻을 수 있기 때문에 add_years가 필요하지 않습니다.

사용해 보겠습니다.

SELECT TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS')             FROM dual;        -- prints current date:    19-OCT-2019 20:42:02 
SELECT TO_CHAR((SYSDATE + 1/24), 'DD-MON-YYYY HH24:MI:SS')    FROM dual;        -- prints date + 1 hour:   19-OCT-2019 21:42:02
SELECT TO_CHAR((SYSDATE + 1/1440), 'DD-MON-YYYY HH24:MI:SS')  FROM dual;        -- prints date + 1 minute: 19-OCT-2019 20:43:02 
SELECT TO_CHAR((SYSDATE + 1/86400), 'DD-MON-YYYY HH24:MI:SS') FROM dual;        -- prints date + 1 second: 19-OCT-2019 20:42:03 
-- Same goes for subtraction.

SELECT SYSDATE                  FROM dual;       -- prints current date:     19-OCT-19
SELECT ADD_MONTHS(SYSDATE, 1)   FROM dual;       -- prints date + 1 month:   19-NOV-19
SELECT ADD_MONTHS(SYSDATE, 12)  FROM dual;       -- prints date + 1 year:    19-OCT-20
SELECT ADD_MONTHS(SYSDATE, -3)  FROM dual;       -- prints date - 3 months:  19-JUL-19

방법 #2: 사용INTERVALs, 날짜에서 구간(평균)을 쉽게 빼거나 뺄 수 있습니다.또한 여러 단위를 동시에 추가하거나 뺄 수 있습니다(예: 5시간 및 6분 등). 예:

SELECT TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS')                                        FROM dual;        -- prints current date:                 19-OCT-2019 21:34:15
SELECT TO_CHAR((SYSDATE + INTERVAL '1' HOUR), 'DD-MON-YYYY HH24:MI:SS')                  FROM dual;        -- prints date + 1 hour:                19-OCT-2019 22:34:15
SELECT TO_CHAR((SYSDATE + INTERVAL '1' MINUTE), 'DD-MON-YYYY HH24:MI:SS')                FROM dual;        -- prints date + 1 minute:              19-OCT-2019 21:35:15
SELECT TO_CHAR((SYSDATE + INTERVAL '1' SECOND), 'DD-MON-YYYY HH24:MI:SS')                FROM dual;        -- prints date + 1 second:              19-OCT-2019 21:34:16
SELECT TO_CHAR((SYSDATE + INTERVAL '01:05:00' HOUR TO SECOND), 'DD-MON-YYYY HH24:MI:SS') FROM dual;        -- prints date + 1 hour and 5 minutes:  19-OCT-2019 22:39:15
SELECT TO_CHAR((SYSDATE + INTERVAL '3 01' DAY TO HOUR), 'DD-MON-YYYY HH24:MI:SS')        FROM dual;        -- prints date + 3 days and 1 hour:     22-OCT-2019 22:34:15
SELECT TO_CHAR((SYSDATE - INTERVAL '10-3' YEAR TO MONTH), 'DD-MON-YYYY HH24:MI:SS')      FROM dual;        -- prints date - 10 years and 3 months: 19-JUL-2009 21:34:15

계산은 간단합니다.

만약 당신이 날짜에 1시간을 추가하고 싶다면.

매일은 24시간이고, 당신은 추가할 수 있습니다.

select sysdate + 1/24 from dual; 

추가할 1일을 원하시면

select sysdate + 24/24 from dual; 

or 

select sysdate + 1 from dual; 

same as for 2, 3 , 4 day

정적인 날짜에 대한 답변은 아래와 같습니다.

언급URL : https://stackoverflow.com/questions/26510033/oracle-add-1-hour-in-sql

반응형