为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8
【操作系统】:麒麟10
【CPU】: 海光
【问题描述】*:MySQL迁移至达梦时报错:java.sql.SQLException: HOUR_OF_DAY: 0 -> 1,部分数据迁移成功。
表结构
CREATE TABLE "UFWP_SHANGRAO"."E_INV_PERSON"
(
"INVID" VARCHAR(200) NOT NULL,
"PRIPID" VARCHAR(72),
"INV" VARCHAR(200),
"CERTYPE" VARCHAR(128),
"CERTYPE_CN" VARCHAR(256),
"CERNO" VARCHAR(100),
"LISUBCONAM" DECIMAL(18,6),
"SUBCONAMUSD" DECIMAL(18,6),
"SUBCONFORM" VARCHAR(400),
"SUBCONPROP" DECIMAL(16,4),
"CONDATE" TIMESTAMP(0),
"ACCONAMUSD" DECIMAL(18,6),
"DOM" TEXT,
"CURRENCY" VARCHAR(128),
"CURRENCY_CN" VARCHAR(256),
"COUNTRY" VARCHAR(256),
"COUNTRY_CN" VARCHAR(256),
"EXEAFFSIGN" VARCHAR(128),
"RESPFORM" VARCHAR(128),
"RESPFORM_CN" VARCHAR(256),
"SCONFORM" VARCHAR(400),
"SEX" VARCHAR(128),
"NATION" VARCHAR(128),
"NATDATE" TIMESTAMP(0),
"LITDEG" VARCHAR(128),
"POLSTAND" VARCHAR(128),
"OCCST" VARCHAR(256),
"POSTALCODE" VARCHAR(12),
"TEL" VARCHAR(60),
"S_EXT_FROMNODE" VARCHAR(12),
"S_EXT_DATATIME" TIMESTAMP(0),
"LIACCONAM" DECIMAL(18,6),
"ZX_ID" TEXT,
试试MySQL的连接属性加个时区:jdbc:mysql://hostname:port/dbname?serverTimezone=GMT%2B8&otherParameters...
这个错误可能是由以下几个原因引起的:
MySQL和达梦数据库可能使用不同的时间格式或存储方式。在迁移数据时,如果时间数据没有正确转换或格式化以匹配目标数据库的要求,就可能会引发此错误。
在某些情况下,时间值(如小时数)可能超出了目标数据库所允许的范围。例如,如果MySQL中允许的时间值在迁移到达梦数据库时被解释为无效或超出范围的值,就可能导致此错误。
如果MySQL和达梦数据库位于不同的时区,或者数据在迁移过程中没有正确处理时区转换,也可能会出现时间相关的错误。
MySQL和达梦数据库中的相应字段可能具有不同的数据类型。如果数据类型不兼容,且没有进行适当的转换,就可能导致此错误。
使用的数据库驱动或中间件可能不支持某些特定的时间格式或转换。这可能会导致在迁移或处理数据时发生错误。
mysql连接串加上serverTimezone=GMT%2B8试试