如何在java中处理具有值“0000-00-00 00:00:00”的日期[重复]

Posted

技术标签:

【中文标题】如何在java中处理具有值“0000-00-00 00:00:00”的日期[重复]【英文标题】:How to handle date having value "0000-00-00 00:00:00" in java [duplicate] 【发布时间】:2018-07-31 13:32:53 【问题描述】:

如果日期值为:“0000-00-00 00:00:00”,如何在 java 中处理日期。我正在从 mysql 获取数据并遇到这种日期情况。请建议如何处理这种情况。

【问题讨论】:

【参考方案1】:

设置 MySQL JDBC 驱动选项zeroDateTimeBehavior=convertToNull。您可以在连接字符串中设置它。然后你不会得到这些日期,你会得到空值。

【讨论】:

在java端我无法处理?? 不行,因为你会从ResultSet.getDate()ResultSet.getObject()得到它,已经太迟了。如果您坚持,可以在 Java 中设置连接字符串中的此选项。 @BleedCode 当然你可以在 Java 端处理,但我相信这不是一个可取的方式。您可以将日期检索为字符串,并执行特殊的解析逻辑。或者,让您的 SQL 在日期为零时检索 null(或其他一些特殊日期值)

以上是关于如何在java中处理具有值“0000-00-00 00:00:00”的日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章

值 '0000-00-00' 不能表示为 java.sql.Date

MySQL 关于 Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestam

如何在MySQL DATETIME字段中存储DATE / TIME / YEAR?

mysql中datetime类型字段为默认值0000-00-00 00:00:00怎么取出来

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

Mysql 时间格式默认空串 '0000-00-00 00:00:00' select抛出异常的解决方法