Как отформатировать поля даты в Apache Calcite? - PullRequest
0 голосов
/ 20 февраля 2020

Я хотел бы создать RexNode для преобразования полей даты в желаемый формат. Ниже SQL эквивалент

SELECT CONVERT (varchar (12), "DATE_FIELD", 101) - 06/29/2009

, с которым я боролся в прошлом два дня, чтобы найти его в API кальцита. Пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 11 марта 2020

Я решил проблему с помощью пользовательского оператора Sql.

public static SqlOperator getConvertOperator () {
    return new SqlFunction(CONVERT_FUNCTION, SqlKind.OTHER_FUNCTION,
        ReturnTypes.BOOLEAN, InferTypes.FIRST_KNOWN,
        OperandTypes.ANY, SqlFunctionCategory.SYSTEM);
}

RexNode node = builder.call(getConvertOperator(), builder.literal(SqlTypeName.VARCHAR), builder.field(COLUMN_NAME), builder.literal(FORMAT));

Это просто помогло.

...