내 작업은 ABAP 스타일 날짜 (즉, 문자열 "20171120"로 표시되는 2017-11-20)를 통해 HANA 날짜로 변환하는 것입니다. SQL 스크립트. 이것은 쉽게 수행 할 수 있습니다SAP HANA : 빈 날짜에 null 값을 유지하면서 sqlscript를 사용하여 abap 날짜를 hana 날짜로 변환
select to_date('20171120','YYYYMMDD') from dummy;
그러나 또 다른 요구 사항이 다음 ABAP 날짜가 초기 인 경우 (값 '00000000') 데이터베이스가 null 값을 저장하여야한다. 나는 'Z'와 잠재적 초기 날짜 '00000000'을 대체 할 만 'Z'가 발견 된 경우 문자열이 null로 트림 : 나는 작업 솔루션을 발견
select to_date(trim(leading 'Z' from replace('00000000','00000000','Z')),'YYYYMMDD') from dummy;
-- result: null
select to_date(trim(leading 'Z' from replace('20171120','00000000','Z')),'YYYYMMDD') from dummy;
-- result: 2017-11-20
을하지만이 더러운 해킹처럼 보인다. 더 우아한 솔루션에 대한 아이디어가 있습니까?
Eclipse에서 내부 값 '-1-12-31'은 '?'(null과 동일)로 표시됩니다. "선택 ... 필드가 null 인 경우"와 만 차이점을 볼 수 있습니다. 당신 말이 맞아요, DATS_TO_DATE는 null이 아닙니다. – Psio
좋은 지적! 특별한 날짜 값이 클라이언트 (이 경우에는 JDBC)로 전송 될 때 실제로 NULL 값으로의 변환이 발생합니다. 그런 다음 클라이언트 소프트웨어는 유효한 Java 날짜 유형 (null 값의 날짜)에 매핑됩니다. –
특수한 "INITIAL"날짜를 사용하면 해당 열에서 NULL 값을 피할 수 있습니다. 컬럼 스토어 테이블의 경우이 초기 날짜에 대한 공간 요구 사항이 증가하지 않지만 SQL 문은 잠재적 인 NULL 값을 처리하기 위해 추가 논리를 고려하지 않고도 작동 할 수 있습니다. 결국이 값을 유지하려고 할 수 있습니다. –