文档首页/ 数据库和应用迁移 UGO/ 用户指南/ 语法转换指南/ 转换错误码/ MySQL To GaussDB 转换错误码/ U0400035:GaussDB M兼容TIMESTAMP类型不支持'0000-00-00 00:00:00'作为默认值
更新时间:2025-06-04 GMT+08:00

U0400035:GaussDB M兼容TIMESTAMP类型不支持'0000-00-00 00:00:00'作为默认值

描述

数据库类型与版本

  • 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
  • 目标库类型与版本:GaussDB M兼容。

语法示例

当MySQL未启用严格模式(即sql_mode中不包含NO_ZERO_DATE)时,允许TIMESTAMP类型的字段保存'0000-00-00 00:00:00'值,但是GaussDB M兼容TIMESTAMP类型的取值范围为:1970-01-01 00:00:01' UTC ~ 2038-01-19 03:14:07' UTC,不支持'0000-00-00 00:00:00'。如下示例在GaussDB M兼容中将不支持。

create table test_timestamp (
    id int, 
    c_timestamp timestamp not null default '0000-00-00 00:00:00'
);

改造建议

修改“TIMESTAMP类型'0000-00-00 00:00:00'值的转换”转换配置项,将'0000-00-00 00:00:00'转换为'1970-01-02 00:00:00'。

在MySQL中通常用'0000-00-00 00:00:00'表示该字段的值尚未被明确设定,或者在某些情况下,表示无效的日期时间值,但是如果业务中使用了该值做判断,则转换后需要排查业务将相关的判断替换成转换后的时间日期值。