为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:
【CPU】:
【问题描述】*:刚开启sqllog,暂时没找到溢出相关的字段,但看到了一个update时间列失败的报错,请问这个有办法解决吗?
dmagent-6.5.7,DEM version 6.5.7
[ERR(-6118)]: /***DEM***/UPDATE DEM.DMA_DATABASE SET LOGHISTORY_MAX_LOG_TIME = 'null' WHERE ID = '1680327649622' AND ((LOGHISTORY_MAX_LOG_TIME IS NULL) OR (DATEDIFF(MS, LOGHISTORY_MAX_LOG_TIME, 'null') > 0));
时间列定义
"LOGHISTORY_MAX_LOG_TIME" DATETIME(6)
'null'不是合法的时间日期类型,在报错的update语句里面,既不能作为字段的值,也不能作为datediff函数的参数,这两个位置都会报-6118非法的时间日期类型;
NULL则可以,但是DATEDIFF(MS, 任何时间, null)恒为NULL,NULL>0恒为假,可能不是你期望的更新逻辑,建议结合实际改写一下sql
这个问题在DEM 版本v6.5.7中曾经遇到过,建议你升级到最新的DEM版本v7系列
这个报错是-6118 非法的时间日期类型数据