programing

Oracle SQL보다 작거나 같음

sourcejob 2023. 7. 23. 14:14
반응형

Oracle SQL보다 작거나 같음

updated_date  = 08-Jun-2010;

저는 이런 질문이 있습니다.

select * from asd whre updated_date <= todate('08-Jun-2010', 'dd-MM-yy');

하지만 결과가 나오지 않습니다.다음과 같은 경우에만 작동합니다.todate2010년 6월 9일...

즉, 나의equalto연산자가 제대로 작동하지 않습니다.

왜 그럴까요?

Oracle에서 DATE는 특정 시점입니다.항상 초 단위의 정밀도를 갖는 시간 성분을 가지고 있습니다.todate('08-Jun-2010', 'dd-Mon-yyyy')Oracle에 있는 것과 동일합니다.todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')따라서 해당 날짜까지의 행을 선택하면 다음 날짜와 동일하지 않은 시간 성분으로 해당 날짜에 행을 얻을 수 없습니다.00:00.

다음을 포함한 모든 행을 선택하려는 경우08-JUN-2010다음을 사용하는 것이 좋습니다.

< to_date('09-06-2010', 'dd-MM-yyyy')

또는

<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')

참고 - 날짜 형식을 수정했습니다. 사용해야 합니다.MON약식 월 이름을 사용하려는 경우.를 사용하는 것이 좋습니다.MM대신, 누군가가 클라이언트 설정을 변경할 때 오류가 발생하지 않도록 (NLS_DATE_LANGUAGE) 또한 를 사용하는 것을 선호합니다.YYYY대신에YY.

이것 좀 봐요.

select to_date('08-Jun-2010', 'dd-MON-yyyy') from dual;

이와 같음2010-06-08 00:00:00시간을 주목하세요.

updated_date시간 부분이 있습니다.이 쿼리를 포함하려면 이 쿼리를 사용하십시오.

select * from asd where trunc(updated_date) <= to_date('08-Jun-2010', 'dd-MON-yyyy');

기본값TRUNCfunction for date 매개 변수는 시간을 제거합니다.

잘라내기 참조

언급URL : https://stackoverflow.com/questions/2996915/less-than-or-equal-to-in-oracle-sql

반응형