当前位置: 首页 > 面试题库 >

无法将'0000-00-00 00:00:00'转换为TIMESTAMP

高祺
2023-03-14
问题内容

字段定义

 /** Date. */
  @Column(columnDefinition = "datetime")
  private Date date;

二传手

public void setDate(final Date date) {
    DateFormat dfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
      this.date = dfmt.parse(dfmt.format(date));
    } catch (ParseException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }

有谁知道如何将“零日期”转换为适当的值?因为我有错误:

Cannot convert value '0000-00-00 00:00:00' from column 13 to TIMESTAMP

即使我像这样设置“默认”字段和设置器:

/** Date. */
      @Column
      private Date date;


public void setDate(final Date date) {
      this.date = date;   
  }

我仍然会有同样的问题。


问题答案:

在这里,我将大胆猜测您正在使用MySQL
:-)它使用“零日期”作为特殊占位符 -不幸的是,JDBC默认情况下无法处理它们。

解决方案是将“ zeroDateTimeBehavior =
convertToNull”指定为MySQL连接的参数(在数据源URL中或作为其他属性),例如:

jdbc:mysql://localhost/myDatabase?zeroDateTimeBehavior=convertToNull

这将导致所有这样的值被检索为NULL。



 类似资料:
  • 问题内容: 字段定义 二传手 有谁知道如何将“零日期”转换为适当的值?因为我有错误: 即使我像这样设置“默认”字段和设置器: 我仍然会有同样的问题。 问题答案: 在这里,我将做出一个疯狂的猜测,即您正在使用MySQL :-)它使用“零日期”作为特殊的占位符 -不幸的是,默认情况下JDBC无法处理它们。 解决方案是将“ zeroDateTimeBehavior = convertToNull”指定为

  • 我有一个包含日期的数据库表 有没有什么方法可以在不改变表结构的情况下获得?

  • 问题内容: 我有一个包含日期的数据库表 我正在使用MySQL。有时从程序中将没有日期的数据传递到数据库。因此, 当使用带错误的日期列调用表数据时,日期值会自动分配给它 在插入数据时,我尝试将null值传递给日期,但是将其分配给当前时间。 有什么办法可以在不更改表结构的情况下获得? 问题答案: 您可以在数据源配置中直接使用此JDBC URL: jdbc:mysql://您的服务器:3306 /您的数

  • 我想在MySQL中允许零日期。我已将更改为。 我已经在中更改了它。 然而,当我尝试插入数据时,我得到了错误, 数据截断:不正确的datetime值:“0000-00-00 00:00:00” MySQL版本为5.7.18。 这方面的任何想法都将大有帮助。

  • 问题内容: 如何将字段的默认值设置为“ 0000-00-00 00:00:00”?如果我们不能使用“ 0000-00-00 00:00:00”作为默认值?什么是 基本 有效tiemdate? 例如,这是用于创建我的商品表的SQL, 运行此查询时出现此错误, 问题答案: 错误原因:SQL模式 您可以设置的默认值,或场特殊的“零”作为虚拟日期“0000-00-00”值,如果SQL模式允许它。对于低于5

  • 问题内容: 我正在做一个需要从数据库中提取数据的项目,我使用Spring MVC从数据库中构建模型以选择数据。 这是我的 JSP页面 的问题 : 如您所见,我尝试从标记库中使用。 问题: 但是当使用此 控制器 准备我的模型时 : 它给我这样的错误: 路径为[/ controller]的servlet [appServlet]的service()抛出异常[请求处理失败;嵌套的异常是org.hiber