从Access通过ODBC访问Mysql数据库时,如果一张表中含有datetime字段,则该行数据无法修改和删除。
由于需要将公司的access应用升级,我打算分两步走:第一步:先将后台数据库迁移到Mysql,前端仍然使用Access,通过ODBC连接;第二步:重写应用程序;这样做的目的是可以在确保业务不中断的情况下,逐渐熟悉并开发Mysql应用。(公司只有我自己一个半吊子开发)
在做数据迁移时发现,含有datetime字段的表,虽然可以通过Access前端查询,但是一旦有修改和删除的动作时,就会报错如下:
ODBC--调用失败。
[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.31]Date overflow (#0)
我发现当我把datetime数据的后半部分(时分秒)删除,只保留日期的部分,那么在Access里,就可以操纵这行数据了。
还请大家帮忙解惑,谢谢。
Access 和 MySQL 的 datetime 格式不同,而 ODBC 驱动程序在将数据从一个数据库传输到另一个数据库时可能无法正确转换数据类型