mysql 中的日期时间字段溢出错误
Datetime field overflow error in mysql
我试图在从 mssql 转换后插入 mysql table。日期时间格式是十六进制的,然后我写了一个函数将它转换为日期时间。当我尝试插入值时,出现日期时间字段溢出错误。
我的插入语句如下所示:
INSERT into BankMaster (BankCode, BankName, CREATEDID, CREATEDDATETIME, UPDATEDID, UPDATEDDATETIME) VALUES ('N','xxxx','admin',cast(ConvertSQLServerDate(0x98A90076) as datetime), NULL, NULL);
函数如下:
create function ConvertSQLServerDate(dttm binary(16))
returns datetime
return CAST(
'1900-01-01 00:00:00' +
INTERVAL CAST(CONV(substr(HEX(dttm),1,8), 16, 10) AS SIGNED) DAY +
INTERVAL CAST(CONV(substr(HEX(dttm),9,8), 16, 10) AS SIGNED)* 10000/3 MICROSECOND AS DATETIME);
非常感谢任何帮助。
我在 MSSQL 中生成了以 smalldatetime 作为数据类型的脚本。所以我得到了一个 8 位十六进制数。后来,我转换成 datetime 数据类型,结果是 16 位十六进制值,我得到了我想要的结果。
我试图在从 mssql 转换后插入 mysql table。日期时间格式是十六进制的,然后我写了一个函数将它转换为日期时间。当我尝试插入值时,出现日期时间字段溢出错误。
我的插入语句如下所示:
INSERT into BankMaster (BankCode, BankName, CREATEDID, CREATEDDATETIME, UPDATEDID, UPDATEDDATETIME) VALUES ('N','xxxx','admin',cast(ConvertSQLServerDate(0x98A90076) as datetime), NULL, NULL);
函数如下:
create function ConvertSQLServerDate(dttm binary(16))
returns datetime
return CAST(
'1900-01-01 00:00:00' +
INTERVAL CAST(CONV(substr(HEX(dttm),1,8), 16, 10) AS SIGNED) DAY +
INTERVAL CAST(CONV(substr(HEX(dttm),9,8), 16, 10) AS SIGNED)* 10000/3 MICROSECOND AS DATETIME);
非常感谢任何帮助。
我在 MSSQL 中生成了以 smalldatetime 作为数据类型的脚本。所以我得到了一个 8 位十六进制数。后来,我转换成 datetime 数据类型,结果是 16 位十六进制值,我得到了我想要的结果。