반응형
Oracle SQL에서 'YYYY'와 'RRR'의 차이점은 무엇입니까?
SQL에 두 가지 쿼리가 있습니다.
select trunc(to_date('27-Jul-1987'),'YYYY') FROM dual;
그리고.
select trunc(to_date('27-Jul-1987'),'RRRR') FROM dual;
둘 다 저에게 같은 결과를 주고 있습니다.'RRR'과 'YYY'의 차이점은 무엇입니까?
YYYY현재 연도를 4자리로 지정합니다.
RRRRformat은 범위에서 두 자리 연도를 의미합니다.00로.49현재 세기(즉, 현재 연도와 처음 두 자리 수가 동일)로 가정되며, 다음과 같은 연도가 지정됩니다.50통해.99이전 세기에 있었던 것으로 추정됩니다.
변환할 날짜에 해당 연도의 처음 두 자리가 지정되지 않은 경우:
- YYYY는 항상 현재 연도를 반환합니다.
- RRR은 데이터베이스의 현재 지정된 연도를 기준으로 연도를 반환합니다.
다음 샘플 코드를 사용해 보십시오.
SELECT TO_DATE ('010199', 'MMDDYYYY') AS date_a,
TO_DATE ('010199', 'MMDDYY') AS date_b,
TO_DATE ('010199', 'MMDDRR') AS date_c,
TO_DATE ('010199', 'MMDDRRRR') AS date_d
FROM DUAL;
2014년 12월 1일 실행 시 결과:
DATE_A DATE_B DATE_C DATE_D
--------- --------- --------- ---------
1/1/0099 1/1/2099 1/1/1999 1/1/1999
이 오라클 링크는 훌륭한 설명과 예제를 제공합니다.
위 링크에서:
- 지정된 두 자리 연도가 00 ~ 49인 경우,
- 현재 연도의 마지막 두 자리가 00 ~ 49이면 반환된 연도의 처음 두 자리가 현재 연도와 동일합니다.
- 현재 연도의 마지막 두 자리 수가 50에서 99 사이인 경우 반환된 연도의 처음 두 자리 수는 현재 연도의 처음 두 자리 수보다 1 큽니다.
- 지정된 두 자리 연도가 50 ~ 99인 경우
- 현재 연도의 마지막 두 자리가 00 ~ 49인 경우 반환된 연도의 처음 두 자리는 현재 연도의 처음 두 자리보다 1 작습니다.
- 현재 연도의 마지막 두 자리 수가 50에서 99 사이이면 반환된 연도의 처음 두 자리 수가 현재 연도와 동일합니다.
다음 항목:
SQL> select to_char(to_date('72-01-01','rrrr-mm-dd'),'yyyy') from dual;
다음을 제공합니다.
1972
하지만 이것은:
SQL> select to_char(to_date('72-01-01','yyyy-mm-dd'),'yyyy') from dual;
다음을 제공합니다.
0072
언급URL : https://stackoverflow.com/questions/6812916/what-is-the-difference-between-yyyy-and-rrrr-in-oracle-sql
반응형
'programing' 카테고리의 다른 글
| Excel 시트에서 Firebase 데이터를 내보내는 방법 (0) | 2023.06.16 |
|---|---|
| 문자열 배열에서 문자열을 검색하는 방법 (0) | 2023.06.16 |
| woocommerce의 범주 및 제품에 대한 동일한 기본 URL (0) | 2023.06.16 |
| C에서 '**'는 무엇을 의미합니까? (0) | 2023.06.16 |
| 두 줄을 어떻게 연결할 수 있습니까? (0) | 2023.06.16 |