날짜 시간에서 하루가 아닌 1시간 빼기
나는 있습니다datetime열(MM/DD/YYYY HH:MM:SSAM/PM) 하지만 제가 이렇게 할 수 있습니다.
SELECT MAX(D_DTM)-1 FROM tbl1
...그것은 하루 전으로 거슬러 올라갑니다.하루가 아닌 한 시간을 열에서 제거하려면 어떻게 해야 합니까?
저는 또한 알아차렸습니다.datetime12AM의 레코드는 MM/DD/YYYY 00:00:00이 아니라 MM/DD/YYYY처럼 보입니다. 그게 중요한지 모르겠습니다.
Randy의 대답은 좋지만 다음과 같은 간격을 사용할 수도 있습니다.
SELECT MAX(D_DTM)- interval '1' hour FROM tbl1
예 - 날짜는 정수일 단위입니다.
만약 당신이 몇 시간을 원한다면 당신은 약간의 수학을 할 필요가 있습니다 - 예를 들면.-(1/24)
또는 를 사용합니다.INTERVAL기능.그것은 같은 결과를 가지고 있지만 나는 그것이 더 명확하게 읽힌다고 생각합니다 - 물론 그것은 단지 의견일 뿐입니다 :)
SELECT MAX(D_DTM) - INTERVAL '1' HOUR FROM tbl1
좋은 점은INTERVAL함수는 다음을 처리할 때 간격을 년, 월, 일, 시간, 분 또는 초로 만들 수 있습니다.DATE값(월말 날짜를 처리할 때 월 간격이 까다로울 수 있음).
그리고 네, 그 주변의 인용구.1이 예에서는 를 입력해야 합니다.
또한 오라클 전용 시스템을 사용할 수 있습니다.NumToDSInterval상수 대신 변수를 받아들이기 때문에 덜 표준적이지만 더 유연한 함수:
SELECT MAX(D_DTM) - NUMTODSINTERVAL(1, 'HOUR') FROM tbl1
select sysdate - numtodsinterval(1,'hour') from dual
간단합니다.
sysdate - 5/(24*60*60) --> 시스템 시간에서 5초를 뺍니다.
sysdate - 5/(24*60) --> 시스템 시간에서 5분을 뺍니다.
sysdate - 5/(24) --> 시스템 시간에서 5시간을 뺍니다.
이런 이유로
이중에서 (날짜 - (1/24)) 선택
구간을 사용하는 또 다른 방법은 다음과 같습니다.
NUMTODSINTERVAL( number, expression )
예
NUMTODSINTERVAL(150, 'DAY')
NUMTODSINTERVAL(1500, 'HOUR')
NUMTODSINTERVAL(15000, 'MINUTE')
NUMTODSINTERVAL(150000, 'SECOND')
INTERVAL을 사용하는 것이 효과가 없는 상황에 유용하기 때문에 이 문제를 제기합니다.
언급URL : https://stackoverflow.com/questions/16084484/subtract-one-hour-from-datetime-rather-than-one-day
'programing' 카테고리의 다른 글
| 브라우저 탭에 포커스가 있는지 탐지 (0) | 2023.08.10 |
|---|---|
| 컨테이너 요소에 부유 요소가 포함되어 있으면 높이가 증가하지 않는 이유는 무엇입니까? (0) | 2023.08.10 |
| [App\Post]에서 대량 할당을 허용하도록 채우기 가능한 속성에 [제목] 추가 (0) | 2023.08.10 |
| Mysql : 데이터를 따라 데이터베이스 덤프 (0) | 2023.08.10 |
| JavaScript에서 상위 Iframe에 액세스하는 방법 (0) | 2023.08.10 |