DATE
функции не поддерживаются в OpenSQL
. Я думаю, что они являются либо только функциями HANA, либо реализованы в AbapSQL
(более поздняя версия c, специфицированная Hana SQL) посредством более поздних обновлений в системах S4 / Hana. Тот, который вы пытались использовать с TO_DATE
, определенно является функцией HANA.
SELECT * FROM EKKO
WHERE BUKRS = @CO_Code AND WAERS = 'USD'
AND substring( AEDAT, 1, 4 ) = 2017
INTO TABLE @data(RESULT).
Вы также можете использовать AEDAT like '2017%'
или AEDAT like '2017____'
(_
подстановочный знак для 1 символа). Чем больше c ваших критериев, тем быстрее будет выполняться ваш запрос.
Редактировать 1: Открыть SQL Функции даты реализованы с 7.51, они поддерживают вычисления, но не добыча. SAP Hana SQL - функции Datetime содержит список функций, которые вы пытались использовать, но это справочная страница SAP Hana SQL.
Редактировать 2: Для пояснения Abap SQL
- это более поздняя (начиная с ABAP 7.53 и выше) итерация Open SQL
. Переименование в «Abap SQL» напрямую связано с переходом на базу данных HANA и прекращением поддержки двигателей БД, отличных от HANA DB. Обратная совместимость сохраняется, но «некоторые функции» (вероятно, означающие новые функции) будут поддерживаться только БД HANA.
В качестве примечания, в последних версиях Abap (вместе с Hana DB) поддерживается поддержка числовых форматов c (в качестве опции для использования вместо текущего CHAR8
формата). Извлечение лет / месяцев из числовой даты c не так просто, как подстрока, поэтому я предполагаю, что поддержка таких функций должна появиться в 'Abap SQL'.