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类型与时区
分享到:
相关推荐
然而,当你在使用MyBatis进行数据映射时,可能会遇到一个特定的问题,即当`TIMESTAMP`字段的值为'0000-00-00 00:00:00'时,MyBatis可能无法正确处理这个特殊值,导致映射异常。这个问题通常出现在尝试插入或更新包含...
刚开始学习数据库操作,今天存数据时发现,保存的时候报错(Error 1292: Incorrect datetime value: '0000-00-00' for column 'deleted_at' at row 1) ,之后就搜索了下原因,是因为MySQL存日期时不允许出现这种格式...
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
在Java中,`java.util.Date`类用于表示一个特定的瞬间,即从格林尼治时间1970年1月1日00:00:00开始计算的毫秒数。为了将日期转换为人类可读的格式,我们需要使用`java.text.SimpleDateFormat`类,它可以按照我们定义...
根据提供的标题、描述、标签及部分内容,我们可以了解到这段文本主要涉及Oracle数据库中处理时间戳(`TIMESTAMP`)的相关操作。接下来将详细解释这些内容所包含的关键知识点。 ### 关键知识点解析 #### 1. `...
在SQL Server中,当我们在一个定义为`datetime`类型的字段中尝试插入空值或空白字符串时,系统通常会默认填充1900-01-01 00:00:00.000作为日期时间值。这是因为`datetime`类型不接受空值(NULL),如果未提供有效值...
iperf3-with-timestamp-Linux-shell-cli
在MySQL 5.6中,当你遇到"TIMESTAMP with implicit DEFAULT value is deprecated"这个警告时,这表明你在数据库的表定义或数据插入语句中使用了时间戳(TIMESTAMP)字段,并且该字段没有显式地设定默认值。这种做法在...
vip_2024.1129.-4 - iperf3-with-timestamp-Linux-shell-ser
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
`micro-timestamp-master`这个文件夹很可能是包含了库的完整源码,包括`.js`文件、测试用例、README文档等,供开发者研究和使用。 总的来说,`micro-timestamp`是一个针对前端开发的实用工具,通过提供高效的时间...
本文将深入探讨如何在JavaScript中实现时间戳格式化为“2020-10-10 12:00:00”这样的标准日期格式。 首先,我们需要了解什么是时间戳。时间戳是自1970年1月1日(UTC/GMT的午夜)以来的毫秒数。在JavaScript中,我们...
hashTheTimestamp ( new Date ( '2018-06-20 10:00:00 UTC+1' ) ) ; //=> '3a8828cb5f8dbd44f3165f3e733aac831ed164c9665e8c6e2e1b728f61db97bb7d920e3510b3c48d1a03f323d1d13c982ac9de4f3ff277f6a6fb55e
在特定场景中,我们可能需要获取一个表示一天开始时刻的 `Timestamp`,即“00:00:00”(午夜)。下面将详细介绍如何在Java中实现这一需求。 首先,我们需要了解 `Timestamp` 类的一些基本概念。`Timestamp` 包含了...
MODIFY COLUMN `modify_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'; ``` 除了默认值,MySQL还提供了多种日期和时间函数,如`NOW()`、`CURDATE()`、`CURTIME()`等,...