`

MySQL日期类型的'0000-00-00 '问题

阅读更多

 在使用mysql查询映射字段为datetime类型的值为'0000-00-00 00:00:00' 将会抛出异常

结果发现很多人都遇到相同的问题,就是通过JDBC去访问时就会发生此类异常::

java.sql.SQLException:   Value   '0000-00-00 '   can   not   be   represented   as   java.sql.Timestamp

 


解决办法:

给jdbc   url加上   zeroDateTimeBehavior参数:

datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true


zeroDateTimeBehavior=round是为了指定MySql中的DateTime字段默认值查询时的处理方式;默认是抛出异常,

对于值为0000-00-00   00:00:00(默认值)的纪录,如下两种配置,会返回不同的结果:

zeroDateTimeBehavior=round   0001-01-01   00:00:00.0

zeroDateTimeBehavior=convertToNull   null 

分享到:
评论

相关推荐

    mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法

    这个问题通常出现在尝试插入或更新包含非法日期(如'0000-00-00')的数据时。 首先,我们要理解为什么会出现'0000-00-00 00:00:00'这样的值。在MySQL中,`TIMESTAMP`字段允许最小值'1970-01-01 00:00:01'和最大值'...

    MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决

    MySQL不允许存储无效或不确定的日期时间值,比如"0000-00-00",这通常被看作是日期时间类型的非法值。在MySQL的较新版本中,特别是8.0.13及以后,这种限制更为严格。 问题的起因在于MySQL的`sql_mode`配置。`sql_...

    详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    MySQL数据库在5.7版本之后,对于`date`和`datetime`类型的字段,设置默认值为"0000-00-00"时会出现错误提示“Invalid default value for 'time'”。这个问题源于MySQL的`sql_mode`配置,特别是其中的`NO_ZERO_IN_...

    mysql-connector-java-5.1.40.tar

    - 参数如`useSSL`用于控制是否启用SSL加密,`serverTimezone`指定服务器的时区,以解决日期时间的处理问题。 总结来说,`mysql-connector-java-5.1.40.tar`提供了Java应用程序与MySQL数据库间的桥梁,使开发者能够...

    mysql-connector-java-5.1.47.jar

    8.0系列是为配合MySQL 8.0服务器设计的,带来了许多新特性,包括改进的性能、更好的安全特性、JSON增强、新的时间日期类型以及窗口函数等。此外,8.0系列也提供对旧版MySQL服务器(如5.5、5.6和5.7)的部分支持,但...

    mysql-connector-java-8.0.24.jar

    9. **连接参数**:`serverTimezone`用于设置服务器时区,避免日期时间处理中的问题。 10. **错误处理**:通过捕获`SQLException`及其子类来处理异常情况。 此外,压缩包中还包括一个名为“mysql-connector-java-...

    mysql-connector-java-8.0.29.jar

    MySQL Connector/J 8.0.29 是MySQL数据库与Java应用程序之间通信的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中连接并操作MySQL数据库。...

    mysql-connector-java-8.0.21

    2. **JDBC 4.2 兼容**:该驱动遵循JDBC 4.2规范,提供了最新的JDBC API特性,如结果集流式处理,以及对Java 8新特性的支持,如日期和时间类型增强。 3. **性能优化**:通过改进的缓冲机制和更高效的网络通信,提升...

    MySQL知识精讲+mysql实战案例视频.zip

    18-MySQL数据库基本操作-DDL-数据类型-日期类型 19-MySQL数据库基本操作-DDL-表其它操作 20-MySQL数据库基本操作-DDL-修改表结构 21-MySQL数据库基本操作-DML-基本介绍 22-MySQL数据库基本操作-DML-insert-数据插入 ...

    mysql-connector-java-8.0.19.tar.gz

    同时,它还提供了对JDBC 4.2及更高版本的完全支持,包括新的日期和时间类型、结果集流式处理和批量更新等功能。 总的来说,"mysql-connector-java-8.0.19.tar.gz"是Java开发者与MySQL数据库交互的关键组件,它简化...

    MySQL 8.0 参考手册- 2021-12-25.pdf

    手册详细阐述了MySQL 8.0的各种特性,例如增强的性能优化、新的数据类型、改进的查询优化器、窗口函数、JSON字段支持、更好的安全性和权限管理、在线DDL(数据定义语言)操作以及InnoDB存储引擎的增强。此外,还可能...

    MySQL日期数据类型、MySQL时间类型使用总结

    ### MySQL日期数据类型与时间类型使用总结 在MySQL数据库中,日期和时间是十分重要的数据类型,被广泛应用于各种业务场景之中。为了更好地理解和运用这些数据类型,本篇将对MySQL中的日期数据类型和时间类型进行...

    mysql-installer-community-5.7.13.0.msi安装包

    10. **新的数据类型和函数**:添加了诸如GEOMETRY等空间数据类型,以及新的日期时间函数,如 INTERVAL和STR_TO_DATE,使得处理时间和空间数据更加方便。 安装`mysql-installer-community-5.7.13.0.msi`时,用户将...

    mysql-boost-5.7.24.tar.gz

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Boost则是一组C++库,提供了大量功能,如线程管理、智能指针、正则表达式、图形算法等,它能提升MySQL的性能和稳定性。"mysql-boost-5.7.24.tar.gz" 是一个包含...

    MySQL-python-1.2.3.win-amd64-py2.7

    5. **类型转换**:自动处理Python数据类型与MySQL数据类型之间的转换,如字符串、整数、浮点数、日期和时间等。 6. **预编译语句**:通过占位符(如%s)和参数列表,可以避免SQL注入攻击,并提高执行效率。 7. **...

    Mysql中类型转换

    - `TO_DAYS()` 可以将日期转换为自“0000-00-00”以来的天数。 - `FROM_DAYS()` 可以将天数转换回日期。 - **示例**: ```sql SELECT TO_DAYS('2010-08-29'); SELECT FROM_DAYS(734059); ``` 5. **其他转换...

    mysql-installer-community-8.0.27.1

    9. **新的数据类型和函数**:例如,增加了一个用于日期时间操作的新函数`INTERVAL`,以及一些用于几何对象处理的新数据类型。 10. **更好的性能监控和诊断**:MySQL 8.0提供了更丰富的性能监控工具,如Performance ...

    mysql-boost-5.7.32.tar.gz

    "mysql-boost-5.7.32.tar.gz"是一个包含MySQL服务器版本5.7.32的源代码压缩包,该版本支持Boost库,Boost是一个C++库集合,提供了各种各样的工具,包括线程管理、日期时间处理和图形算法等。 在安装和使用"mysql-...

Global site tag (gtag.js) - Google Analytics