Mysql:将 0000-00-00 设置为空

标签 mysql nullable

我已经找到了How to set to NULL a datetime with 0000-00-00 00:00:00 value?这正是我的问题 - 但是,它不起作用。

colum 'bezahltDatum' 是一个可以为 null 的日期字段 enter image description here

查询

SELECT id,bezahltDatum FROM `officeBuch` WHERE  bezahltDatum = '0000-00-00'

给出了 25 个结果并且正在运行。

但是,当我尝试将“0000-00-00”转换为 null 时

UPDATE `officeBuch` SET bezahltDatum = null WHERE bezahltDatum = '0000-00-00'

然后我收到一条错误消息

#1292 - Incorrect date value: '0000-00-00' for column 'bezahltDatum' at row 1

enter image description here

为什么这不起作用,我该如何解决?我正在使用 phpMyAdmin 版本 4.7.2 和 Mysql 5.7.18-0ubuntu0.16.04.1

最佳答案

我能想到的唯一方法是用这样的东西临时改变SQL模式

SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION'; 

在实际更新语句之前。这将暂时禁用严格模式,错误不应出现。

关于Mysql:将 0000-00-00 设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49082959/

相关文章:

php - 发布数据中的印地语字体未保存

mysql - 如何使用 SIM808GSM/GPRS 扩展板将传感器数据从 Arduino UNO 发送到 MySQL 数据库

c# - C# 编译器是否优化可空类型?

c# - SQLBulkCopy 抛出 InvalidOperationException 可空整数

kotlin - 我对以下 Kotlin 声明感到困惑

c# - 什么?在 C# 中是什么意思?

mysql - Ruby on Rails 应用程序未连接

MySql 常量值

php - mysql - 将一个表与另外两个表连接起来

c# - Linq 查询可能为 null 属性不是