美文网首页
mysql incorrect datetime value '

mysql incorrect datetime value '

作者: 鹊南飞_ | 来源:发表于2021-01-04 15:09 被阅读0次

    1. 问题说明

    mysql incorrect datetime value '0000-0-0 00:00:00' for column
    或者
    this is incompatible with sql_mode=only_full_group_by

    2. 原因

    第一种情况是因为mysql使用no_zero_date sql模式,所以不允许将0000-00-00保存为“伪日期”
    第二种情况是因为mysql使用ONLY_FULL_GROUP_BY模式,所以如果没有字段在 target list 以及 group by 字段中同时出现,那么 sql 就认为此条语句是不合法的,就会抛出错误。

    3. 解决方法

    1. 命令解决(mysql重启后失效)

    show variables like 'sql_mode';

    variable_name value
    sql_mode strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution

    找到其中需要去掉的sql_mode模式,如no_zero_date sql

    set global sql_mode='strict_trans_tables,no_zero_in_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution';
    
    2. 修改my.ini文件

    需修改mysql配置文件,通过手动添加sql_mode的方式强制指定不需要的属性,

    mysqld下面添加代码:

    sql_mode=strict_trans_tables,no_zero_in_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution
    

    注:

    1. 不同的系统,mysql 的配置文件名以及路径不同
    2. Mac或Linux文件 /etc/my.cnf
    3. windows 在数据库安装目录下的 my.ini

    相关文章

      网友评论

          本文标题:mysql incorrect datetime value '

          本文链接:https://www.haomeiwen.com/subject/xolvoktx.html