Моя задача - преобразовать дату в стиле ABAP (т.е. 2017-11-20, которая представлена строкой «20171120») в дату HANA с помощью сценария sql. Это можно легко сделать:
select to_date('20171120','YYYYMMDD') from dummy;
Но есть еще одно требование: если дата abap является начальной (значение '00000000'), база данных должна хранить нулевое значение. Я нашел рабочее решение: я заменяю потенциальную начальную дату «00000000» на «Z» и обрезаю строку до нуля, если найдено только «Z»:
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
Но это похоже на грязный взлом. Есть ли у кого-нибудь идея более элегантного решения?