简体   繁体   English

如何在 Apache Calcite 中格式化日期字段?

[英]How to format date fields in Apache Calcite?

I would like to create a RexNode to convert date fields in desired format.我想创建一个 RexNode 来转换所需格式的日期字段。 Below is the SQL equivalent下面是等价的 SQL

SELECT CONVERT(varchar(12), "DATE_FIELD", 101) - 06/29/2009选择转换(varchar(12),“日期字段”,101) - 06/29/2009

I have been struggling past two days to find it in the calcite API.过去两天我一直在努力在方解石 API 中找到它。 Please help me with this.请帮我解决一下这个。

I have resolved the issue with a custom defined Sql operator.我已经用自定义的 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));

That just did the trick.那只是成功了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM