【问题标题】:Java.sql.sqlexception: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime valueJava.sql.sqlexception:将 char 数据类型转换为 datetime 数据类型导致 datetime 值超出范围
【发布时间】:2013-07-11 04:28:45
【问题描述】:

当我更新我的日期字段时,更新不适用于 NetBeans 并引发以下异常

Java.sql.sqlexception:将 char 数据类型转换为 datetime 数据类型导致 datetime 值超出范围

但是我运行相同的查询,该查询在 SQL 查询分析器 (SQL Server 2000) 中运行良好

我在 NetBeans 中格式化要更新的日期值,如下所示。

        JXDatePicker jDatePicker = (JXDatePicker) comp;
        Date date = jDatePicker.getDate();
        if (date != null) {
        try {
            String expectedPattern = "yyyy-MM-dd HH:mm:ss.SSS";
            String currentFormat = "dd-MM-yyyy HH:mm:ss.SSS";

            SimpleDateFormat dateFormatReq = new SimpleDateFormat(expectedPattern);

            SimpleDateFormat dateFormatCurr = new SimpleDateFormat(currentFormat);          

            // To Convert Date To Required Format For DB

            //First Prepare A String In Current Format dd-MM-yyyy
            // Then Convert To The Date In The Current Format dd-MM-yyyy
            // Then Convert Into  String In The Desired Format yyyy-MM-dd
            String strDate =     dateFormatReq.format(dateFormatCurr.parse(dateFormatCurr.format(date)));

        } catch (ParseException ex) {
        Logger.getLogger(ChangeJControlProperties.class.getName()).log(Level.SEVERE, null, ex);
        }

        } 

String query =update myTable
               set date=strDate  where id=myDd

对于日期 2013-07-05,它已成功更新。

对于日期 2013-06-28,它会显示上述异常

【问题讨论】:

  • 您真的需要将日期格式化两次吗?我无法动摇那里存在冗余/不必要的解析的想法。如果您仅使用所需格式从选择器中格式化日期会发生什么?
  • @Zec 但问题不在于格式化数据两次;
  • 我假设您在拒绝之前尝试了我的建议。您从设计用于定义日期值的控件中获取日期值。在这个阶段,它的类型是 Date。在您的解析/转换/格式化中,您首先将其转换为“Curr”格式的字符串。请注意,在您强加日期之前,日期没有格式。然后将该字符串解析回日期类型。这使得原始格式变得多余。然后将该日期格式化回字符串。如果问题不在于这种冗余格式,那么导致您的转换异常的原因是什么?

标签: java sql-server netbeans sqlexception


【解决方案1】:

问题已解决,因为选择的默认语言是泰语,当我将其更改为英语时,异常不会出现并且问题消失了。

【讨论】:

  • 如果我可以问,默认语言是什么?
  • Windows 的默认语言
猜你喜欢
  • 2019-12-23
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
相关资源
最近更新 更多