`
pavel
  • 浏览: 928250 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL数据库datetime类型不能为空字符串的问题

阅读更多

库脚本导入之后,发现不能新增USER了,一查才发现datetime类型出了问题,程序里面给datetime类型的一个字段是一个空字符串,因此报错。奇怪的是,我把同样的SQL语句发给MySQL公司的人,他们可以正常执行,只是报出一个Warning。

     经过大量的查找资料后发现,问题出现my.ini里面的sql-mode的设置上,sql-mode默认为"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",这里把STRICT_TRANS_TALBES去掉之后,重启MySQL,就OK了。

     STRICT_TRANS_TABLES的工作方式:
     · 对于事务性存储引擎,在语句中任何地方出现的不良数据值均会导致放弃语句并执行回滚。
     · 对于非事务性存储引擎,如果错误出现在要插入或更新的第1行,将放弃语句。(在这种情况下,可以认为语句未改变表,就像事务表一样)。首行后出现的错误不会导致放弃语句。取而代之的是,将调整不良数据值,并给出告警,而不是错误。换句话讲,使用STRICT_TRANS_TABLES后,错误值会导致MySQL执行回滚操作,如果可以,所有更新到此为止。

     当然,如果想要执行严格的检查,请启用STRICT_TRANS_TABLES,那样的话,就得修改程序,把给datetime类型的空字符修改成"0000-00-00 00:00:00"即可。

分享到:
评论

相关推荐

    java的Date类型转换成MySQL的DateTime类型.doc

    在给定的代码中,提供了一个将 Java 的 Date 类型转换为 MySQL 的 DateTime 类型的方法,该方法名为DateToMySQLDateTimeString,该方法将 Java 的 Date 对象作为参数,并将其转换为 MySQL 的 DateTime 字符串。...

    java的Date类型转换成MySQL的DateTime类型.docx

    两者之间的不兼容性意味着在向MySQL数据库插入包含日期时间的数据时,必须先将Java的`Date`对象转换为符合MySQL格式的字符串。 #### 转换方法 为了实现从Java的`Date`类型到MySQL的`DateTime`格式的转换,可以编写...

    MySQL数据库学习笔记.pdf

    NULL类型是一种特殊类型,表示值未知或未定义,与0或空字符串不同。布尔类型只有TRUE和FALSE两个值,常用于逻辑判断。 在MySQL中,标识符如数据库名、表名、列名等有一定的命名规则和限制,比如最大长度为64个字符...

    python3实现往mysql中插入datetime类型的数据

    然而,初学者可能会遇到问题,比如在尝试将datetime对象直接作为字符串插入时,可能会因为数据类型不匹配而失败。例如,直接使用`%(dt)`或者`'%s' % dt`作为SQL语句的占位符,由于dt是datetime对象,而不是字符串,...

    mysql数据库基础全部课件

    2. 字符串类型:学习VARCHAR、CHAR、TEXT等字符串类型的区别和使用。 3. 日期和时间类型:理解DATE、TIME、DATETIME和TIMESTAMP的区别。 四、SQL基础 1. DDL(Data Definition Language):讲解用于定义数据库结构...

    mysql数据库学习资料

    MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。这份学习资料主要涵盖了MySQL的基础操作,包括数据库的管理、表的操作以及数据的增删改查。 首先,我们讨论一下如何...

    mysql取得datetime类型的数据,后面会跟个.0的实现方法

    在MySQL数据库中,datetime类型用于存储日期和时间的组合,格式为"YYYY-MM-DD HH:MM:SS"。然而,在某些情况下,当datetime值从MySQL传递到Java应用程序时,可能会出现尾随的".0",这通常是由于日期时间转换过程中的...

    MySQL数据库习题和实践答案.rar

    MySQL支持多种数据类型,如整数(INT、BIGINT)、浮点数(FLOAT、DOUBLE)、字符串(VARCHAR、TEXT)、日期和时间(DATE、TIME、DATETIME、TIMESTAMP)等。 4. **查询语句(SELECT)**: SELECT语句是SQL中最常用...

    MySQL数据库应用、设计与管理任务驱动教程(微课版)-课后练习参考答案.pdf

    - **数据类型的分类**:MySQL 中的数据类型大致可以分为数值类型、字符串类型和日期时间类型。 - 数值类型进一步细分为浮点数、定点数等,其中浮点数包括 `Float` 和 `Double` 类型。 - 字符串类型则包括 `Char` ...

    MySQL数据库应用从入门到精通 第2版

    MySQL支持多种数据类型,包括整数类型(INT、TINYINT等)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR)、日期和时间类型(DATE、TIME、DATETIME)等。选择合适的数据类型对数据库性能和存储效率至关...

    MySQL数据库:表的字段类型.pptx

    数据库和表的创建与管理 表的字段类型 课程目标 掌握 —— 不同数据类型的选择。 理解 —— MySQL支持的数据类型;...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使

    MySQL数据库实验文件

    MySQL数据库支持多种数据类型,如数值类型(INT, FLOAT, DECIMAL等)、字符串类型(VARCHAR, CHAR等)、日期和时间类型(DATE, DATETIME, TIMESTAMP等)。在导入.csv文件时,确保数据的格式与表中的字段类型相匹配,...

    Mysql数据库设计.pdf

    MySQL数据库设计是数据库管理系统的核心部分,它涉及到如何有效地组织、存储和检索数据。在MySQL中,数据类型的选择至关重要,因为它直接影响到数据的存储空间、处理效率以及查询性能。以下是关于MySQL数据库设计的...

    MySQL数据库笔记.doc

    * MySQL 中的数据类型包括数字类型、日期类型、字符串类型等。 * 数字类型包括 BIT、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 等。 * 日期类型包括 DATE、DATETIME、TIMESTAMP、TIME、YEAR 等。 * 字符串类型包括...

    MySQL数据库考试练习题 mysql试题集 共28页.pdf

    2. **数据类型**:熟悉MySQL支持的各种数据类型,如整型(`INT`)、浮点型(`FLOAT`)、字符串型(`VARCHAR`)、日期时间型(`DATE`, `TIME`, `DATETIME`)等,并了解它们的区别和适用场景。 3. **SQL语法基础**:...

    MySQL数据库设计、优化.pptx

    - 字符串类型:尽量使用char而非varchar,除非确需节省空间,避免使用text/blob。 - 主键:显式指定自增的int或bigint unsigned not null作为主键,避免使用UUID或其他哈希值。 6. **SQL规范**: - SQL简洁:...

    MySQL数据库设计、优化

    5. **CHAR与VARCHAR**:对于固定长度的字符串使用CHAR,对于变长字符串使用VARCHAR,并注意存储需求差异。 6. **字符集一致性**:在不同层次(服务器、数据库、表、列)保持字符集的一致性。 #### 三、数据库优化 ...

    Java数据类型和MySql数据类型对应表

    MySql 提供了多种数据类型,包括整数类型、浮点数类型、字符串类型、日期时间类型、枚举类型等。每种数据类型都有其特点和用法。 在 MySql 中,整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 等。这些...

Global site tag (gtag.js) - Google Analytics