永洪社区

标题: 原因: 执行SQL失败 [打印本页]

作者: romeolion    时间: 2024-3-28 15:08
标题: 原因: 执行SQL失败
前提描述:
1、转换为日期列的格式是正确的: yyyy-MM-dd格式(和原始列格式一样)
2、计算列的公式是正确的:col['日期列更新时间'-col['日期列创建时间'
3、数据集也是正确的: 直接打开的新数据集
4、新建的'日期列更新时间'和'日期列创建时间'都是通过数据详情中新增的计算列的方法来操作,也是正确的。


问: 上述一新增“新建计算列”确定退出,就遇到出错——原因: 执行SQL失败:“VooltDB exception, code: 43, host: 127.0.0.1, port: 8749; Code: 43. DB::Exception: Illegal types Date32 and Date32 of arguments of function minus: (ILLEGAL_TYPE_OF_ARGUMENT) (version 22.8.5.3)。 请问如何解决?

作者: yhdata_lyaa    时间: 2024-3-28 15:08
dateGap(col['A'],col['B'],"dayofyear");
作者: romeolion    时间: 2024-3-28 15:11
错误代码:110099999

作者: romeolion    时间: 2024-3-28 15:19
错误代码:130000218
数据集: '商机管理-20240308源数据导出V320240328151711-1181'   执行用户: 'admin'
异常: 数据集: '商机管理-20240308源数据导出V320240328151711-1181'   执行用户: 'admin'
原因: 执行SQL失败:“VooltDB exception, code: 43, host: 127.0.0.1, port: 8749; Code: 43. DB::Exception: Illegal types Date32 and Date32 of arguments of function minus: While processing id, `标题`, `客户公司`, `发掘时间`, `创建人`, `创建时间`, `更新人`, `更新时间`,, `日期列更新时间`, `日期列创建时间`, `日期列更新时间` - `日期列创建时间`. (ILLEGAL_TYPE_OF_ARGUMENT) (version 22.8.5.3)

        at g5.thread.ThreadUtil.getExceptionWarningEx(ThreadUtil.java:167)
        at g5.qry.queryPool.QueryRunnable.run(QueryRunnable.java:87)
        at g5.thread.ThreadPoolWithChecker$GThread.run0(ThreadPoolWithChecker.java:223)
        at g5.thread.AbsThreadPool$PThread.run(AbsThreadPool.java:325)

作者: romeolion    时间: 2024-3-28 15:20
数据集执行失败或者权限异常,数据无法正常显示。
作者: yhdata_lyaa    时间: 2024-3-28 15:24
col['日期列更新时间'-col['日期列创建时间'  两个列都是什么格式呢,分别是怎么计算来的,都是转为日期列吗
作者: yhdata_lyaa    时间: 2024-3-28 15:24
解释:

这个错误信息表明在使用一个函数(在这个例子中是minus)时,尝试对两个类型为Date32的参数进行操作,但是这个函数不支持这两种类型的参数直接相减。Date32是Apache Arrow中用于表示32位日期(自1970年1月1日以来的天数)的数据类型。

解决方法:

确认你的操作是否确实需要对两个Date32类型的数据进行相减。如果是这样,你可能需要将其中一个或两个值转换为一个更通用的时间表示形式,比如Date64(自1970年1月1日以来的毫秒数)或者Timestamp。

如果你的操作是为了计算时间间隔,考虑使用其他函数或方法来计算时间差,例如计算两个时间点之间的毫秒数或秒数,然后进行减法操作。

如果你正在使用的是某个特定的库或框架,查看该框架的文档,了解如何正确地进行日期和时间操作。

具体的解决方案将取决于你的具体使用场景和需求。
作者: romeolion    时间: 2024-3-28 16:07
yhdata_lyaa 发表于 2024-3-28 15:24
col['日期列更新时间'-col['日期列创建时间'  两个列都是什么格式呢,分别是怎么计算来的,都是转为日期列 ...

col['日期列更新时间'-col['日期列创建时间'  —— 从元数据那里查看,数据类型都同为:日期时间。
作者: romeolion    时间: 2024-3-28 16:16
yhdata_lyaa 发表于 2024-3-28 15:24
解释:

这个错误信息表明在使用一个函数(在这个例子中是minus)时,尝试对两个类型为Date32的参数进行操 ...

谢谢您的快速回复。是的,我需要计算col['日期列更新时间'-col['日期列创建时间' 之间相关的天数, 比如 2024-03-28和 2024-03-20 之间是用了多少天,计算出来。

如果这个函数不对,请问应该使用的计算列,函数应该怎么表达呢?
作者: yhdata_lyaa    时间: 2024-3-28 16:37
用这个函数试试
dateGap
https://www.yonghongtech.com/rea ... ighlightsub=dateGap
作者: romeolion    时间: 2024-3-28 17:31
非常感谢!困扰我几天的错误问题,因为您的大力支援和出手援助就烟消云散了!

dateGap(col['日期列创建时间'],col['日期列更新时间'],"dayofyear")  —— 这个命令太棒了!非常好用!




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4