Я довольно новичок ie в запросах данных из баз данных, и сейчас у меня возникла проблема с форматом даты в очень старой (я не знаю точной версии) базе данных IBM iSeries AS400 DB2. Моя проблема в том, что дата хранится в этой БД в трех отдельных столбцах как целое число (день столбца + месяц столбца + год столбца), и мне нужно подключиться к этой БД через ODB C в Excel и отфильтровать только несколько строк в соответствии с до желаемого диапазона дат (например, с 1 декабря 2019 года по 31 декабря 2019 года). В этом случае я не хочу использовать PowerQuery для выполнения всех модификаций, потому что полная таблица содержит миллионы строк. Я хочу указать критерии фильтра в строке SQL, чтобы PowerQuery не загружал все строки ...
Мой подход был следующим:
Я создал 6 ячеек параметров на листе Excel, где я просто определил дату от (например, ячейка 1 = '01', ячейка 2 = '12' и ячейка 3 = '2019') и дату до (те же логы c для параметра ячейки 4, 5 и 6). Затем я упомянул эти ячейки параметров в строке SQL, где я определил:
(День> = ячейка параметра 1, месяц> = ячейка параметра 2, год> = ячейка параметра 3) и (День <= ячейка параметра 4 et c.) </p>
Это сработало для меня неплохо , но только когда мне нравилось экспортировать всего несколько сотен строк в течение одного года. Но теперь я сталкиваюсь с проблемой, когда мне нравится экспортировать данные с 1 декабря 2019 года по 31 января 2020 года. В этом случае мой «logi c» не работает, потому что «Месяц с» равен «12», а «Месяц до». 01 '.
Я попробовал другой подход с функцией concat SQL, чтобы создать текстовый столбец, такой как' 2019-12-01 ', а затем преобразовать этот столбец в формат datetime (сначала с приведением к varchar8), но кажется, что этот подход не работает для меня, потому что каждый раз, когда я получаю сообщение об ошибке: «Глобальная переменная DATETIME не найдена».
Прежде чем я отправлю вам часть своего кода, могу ли я попросить вас Посоветуйте, если вы можете придумать лучшее решение или подход для моей проблемы?
Большое спасибо и хорошего дня: -)