1292 - Incorrect datetime value: ‘2021-10-20T10:26:51+08:00‘ for column ‘nginx_time‘ at row 1

分析

该错误是由于 MySQL 对字符值是否符合字段要求进行了严格的检查,但是有时候,这个 检查的结果却是错误的。就像下面示例

INSERT INTO cloud_study.study_log(material_id,course_id,type,nginx_time,account_id,chapter_id,session_id,progress,resolution,material_completed,org_id,timestamp,terminal_device,site_id,terminal_type) VALUES('1399980991762034688','1438395190598729728','video','2021-10-20T10:26:51+08:00','1235477994669285376','1438395228364242944','yn90417914xuixyr1634696791343','2','SD',0,'1379248901018058752','1634696810068','iPhone;CPUiPhoneOS10_3_1likeMacOSX','1369096880696819712','wechat')
 > 1292 - Incorrect datetime value: '2021-10-20T10:26:51+08:00' for column 'nginx_time' at row 1 > 时间: 0.011s
  • 查看SQL_MODE

  MariaDB [(none)]> show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                     |
+---------------+-------------------------------------------------------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------+
  • 解决

         主要是把sql_mode中的strict_trans_tables去掉即可。

set [global | session] variables sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

set global sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值