我必须将Ignite表中包含纪元时间的varchar列转换为时间戳。
我试过了,但找不到任何可用的日期函数。
表中的纪元时间示例:"20210428060207“
有没有在Ignite中实现SQL查询的方法?
实际问题:我必须从这个纪元时间中提取小时、日和月。
发布于 2021-07-16 18:40:01
您可以尝试利用DATEADD
function将Long
-represented值转换为TIMESTAMP
,同时使用EXTRACT
function从生成的TIMESTAMP
中获取所需的部分。
SELECT
EXTRACT (HOUR FROM DATEADD('MILLISECOND', EPOCH_FIELD, DATE '1970-01-01')) AS HOUR,
EXTRACT (DAY FROM DATEADD('MILLISECOND', EPOCH_FIELD, DATE '1970-01-01')) AS DAY,
EXTRACT (MONTH FROM DATEADD('MILLISECOND', EPOCH_FIELD, DATE '1970-01-01')) AS MONTH
FROM "schema_name".TABLE_NAME;
另一种选择是使用Ignite SQL函数。可以将转换逻辑放在那里。在这种情况下,SQL调用会更简单(FOO
在这里是一个定制函数)。
SELECT FOO(EPOCH_FIELD) FROM "schema_name".TABLE_NAME;
https://stackoverflow.com/questions/68403879
复制相似问题