source

Oracle 날짜가 주말인지 확인하시겠습니까?

lovecheck 2023. 7. 16. 13:40
반응형

Oracle 날짜가 주말인지 확인하시겠습니까?

Oracle 날짜가 주말인지 확인하는 가장 좋은 방법은 이 방법입니까?

select * from mytable
where 
TO_CHAR (my_date, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') IN ('SAT', 'SUN');

Oracle 11g 기준으로 그렇습니다.제가 본 유일한 실행 가능한 지역 불가지론적 대안은 다음과 같습니다.

SELECT *
FROM mytable
WHERE MOD(TO_CHAR(my_date, 'J'), 7) + 1 IN (6, 7);

질문에 대한 답이 아닙니다.하지만 더 많은 정보가 있습니다.날짜가 포함된 더 많은 SQL 트릭이 있습니다.

to_char(sysdate, 'd') --- day of a week, 1,2,3 .. to 7
to_char(sysdate, 'dd') --- day of a month, 1,2,3 .. to 30 or 31
to_char(sysdate, 'ddd') --- day of a year, 1,2,3 .. to 365 or 366
to_char(sysdate, 'w') --- week of a month, 1,2,3,4 or 5
to_char(sysdate, 'ww') --- week of a year, 1,2,3 .. to 52

추가 정보: 기능.

MOD(TO_CHAR(my_date, 'J'), 7) + 1 IN (6, 7)

정답이 아닙니다!주말의 요일 수는 NLS 설정에 따라 6 & 7 또는 7과 1일 수 있습니다.

따라서 (NLS 설정에 관계없이) PROPER 테스트는 앞에서 언급한 테스트입니다.

TO_CHAR (my_date, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') IN ('SAT', 'SUN')

내 생각에 최선의 선택은

TO_CHAR (my_date, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') IN ('SAT', 'SUN')

이전에 NLS_TERRORITY 설정

alter session set NLS_TERRITORY=SWEDEN;

그래서 당신은 어떤 숫자가 주말인지 확신합니다.

언급URL : https://stackoverflow.com/questions/3450965/determine-if-oracle-date-is-on-a-weekend

반응형