Oracle SQL의 날짜 비교
Oracle SQL의 날짜를 비교할 때 날짜가 올바르게 형식화되어 있는지 확인하십시오. 기본적으로 Oracle은 날짜를 숫자로 해석하여 부적절하게 처리하면 오류가 발생할 수 있습니다.
일반적인 문제는 문자열을 사용하여 날짜를 나타냅니다. 문자열 (예 : '31 -dec-95 ')은 유효한 날짜로 인식되지 않으며 "유효하지 않은 식별자"오류를 트리거합니다. 이 문제를 해결하려면 날짜 리터럴 또는 to_date () 함수를 사용하여 문자열을 날짜로 변환하십시오.
to_date ()
사용to_date () 함수를 사용하면 날짜 문자열의 형식을 지정하고 날짜 데이터 유형으로 변환 할 수 있습니다. 예를 들어:
select employee_id
from employee
where employee_date_hired > to_date('31-12-1995','DD-MM-YYYY')
이 쿼리는 'dd-mm-yyyy'형식을 사용하여 문자열 '31 -12-1995 '를 날짜로 변환하고 Employee_date_hired 열과 비교합니다.
날짜 텍스트 사용
]]]날짜 리터럴은 Oracle SQL의 날짜를 지정하는 또 다른 방법입니다. 그들은 'YYY-MM-DD'형식으로 작성되었으며 시간 요소가 포함되어 있지 않습니다. 예를 들어:
select employee_id
from employee
where employee_date_hired > date '1995-12-31'
이 쿼리는 Employee_date_hired 열을 날짜 텍스트 '1995-12-31'(1995 년 12 월 31 일)과 비교합니다.
처리 시간 및 로케일 설정
]Oracle 날짜에는 시간 구성 요소가 포함되어 있으므로 정확한 비교를 해야하는 경우 시간 요소를 고려해야합니다. 또한 날짜 형식은 NLS_DATE_FORMAT 및 NLS_DATE_LANGUAGE 설정에 따라 다를 수 있습니다. 지역에서 일관된 날짜 처리를 해야하는 경우 yyyy-mm-dd 형식을 사용하고 그에 따라 nls_date_format 및 nls_date_language를 설정하십시오.
직원 수
특정 날짜 후 고용 된 직원 수를 계산하고 직원 ID로 결과를 그룹화하려면 다음 쿼리를 사용할 수 있습니다.
select employee_id, count(*)
from employee
where employee_date_hired > date '1995-12-31'
group by employee_id
이 쿼리는 1995 년 12 월 31 일 이후에 고용 된 직원 수를 제공하며 직원 ID로 그룹화합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3