JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。这一问题在官方文档中有详细说明,详见如下链接:
http://bugs.mysql.com/bug.php?id=19274
http://dev.mysql.com/doc/refman/5.5/en/connector-j-installing-upgrading.html
在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:
l exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;
l convertToNull:将日期转换成NULL值;
l round:替换成最近的日期即0001-01-01;
因此对于这类异常,可以考虑通过修改连接串,附加
zeroDateTimeBehavior=convertToNull属性的方式予以规避,例如:
jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull
从另一个层面讲,这类异常的触发也与timestamp赋值的操作有关,如果能够在设计阶段和记录写入阶段做好逻辑判断,避免写入'0000-00-00 00:00:00'这类值,那么也可以避免出现Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP的错误。
关于MySQL timestamp类型的说明,可以参考: MySQL数据库中的timestamp类型与时区
分享到:
相关推荐
NULL 博文链接:https://bijian1013.iteye.com/blog/2366468
time: 2012-01-01 00:00:00 timeStamp: 1538409599; time: 2018-10-01 23:59:59 timeStamp: 888645574; time: 1998-02-28 13:59:34 timeStamp: 1582991999; time: 2020-02-29 23:59:59 timeStamp: 1204300800; time...
maven-timestamp-plugin-1.0.jar
sql2005 若字段定义的类型为datetime,插入为”(空),那么会默认值为1900-01-01 00:00:00.000 解决方法查询的时候过滤下cast(nullif(”,”) as datetime) 代码如下:select cast(” as datetime) , cast(nullif(”,”)...
oracle --timestamporacle --timestamporacle --timestamporacle --timestamporacle --timestamporacle --timestamporacle --timestamporacle --timestamp
r, --reverse: reverse sort order-R, --recurse: recurse into subdirectories-s, --sort=(field): field to sort by-S, --blocks: show number of file system blocks-t, --time: which timestamp to show for a ...
maven-timestamp-plugin-1.2-sources.jar
maven-timestamp-plugin-1.0-sources.jar
maven-timestamp-plugin-1.2.jar
maven-timestamp-plugin-0.1.jar
Installing MySQL system tables...2015-08-13 14:20:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for ...
hashTheTimestamp ( new Date ( '2018-06-20 10:00:00 UTC+1' ) ) ; //=> '3a8828cb5f8dbd44f3165f3e733aac831ed164c9665e8c6e2e1b728f61db97bb7d920e3510b3c48d1a03f323d1d13c982ac9de4f3ff277f6a6fb55e
swift-2-timestamp-conversions Swift 2助手,用于将日期转换为时间戳并返回import Foundation// convert an NSDate object to a timestamp stringfunc convertToTimestamp(date: NSDate) -> String { return String...
资源分类:Python库 所属语言:Python 资源全名:drf-timestamp-pagination-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
$ component install segmentio/to-unix-timestamp 例子 var unix = require ( 'to-unix-timestamp' ) ; unix ( new Date ( ) ) ; //=> 1380249249 原料药 toUnixTimestamp(日期) 将Date对象转换为Unix时间戳。 ...
安装npm install mongoose-timestamp 用法var timestamps = require ( 'mongoose-timestamp' ) ;var UserSchema = new Schema ( { username : String} ) ;UserSchema . plugin ( timestamps ) ;mongoose . model ( '...
debezium-datetime-converter Debezium自定义转换器用于处理mysql datetime类型的问题 MySQL的 Binlog连接器 德比兹 德比兹图式 日期(2021-01-28) 本地日期(2021-01-28) 整数(18655) 碘化氢时间日期 ...
水槽时间戳过滤器 ...$ cp /path/to/flume-timestamp-filter/target/flume-timestamp-filtering-interceptor-0.0.jar /usr/lib/flume-ng/plugins.d/flume-timestamp-filter/lib/ 根据Configuration配置flum
Java里如何得到00:00:00格式的时分秒的Timestamp ,下面是具体的实现代码,需要的朋友可以参考下。
gradle-javadoc-notimestamp-错误 带有-notimestamp和自定义doclet的Gradle 6.0 javadoc任务错误的公共再现 要进行复制, ./gradlew buildXmlJavadoc使用Java 8 JVM运行./gradlew buildXmlJavadoc (Java 9+将给出与...