首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.h2.jdbc.JdbcSQLDataException:转换“月份”的数据转换错误;SQL语句:

org.h2.jdbc.JdbcSQLDataException:转换“月份”的数据转换错误;SQL语句:
EN

Stack Overflow用户
提问于 2020-12-17 20:48:22
回答 1查看 937关注 0票数 0

当我尝试用准备好的语句插入数据库时,会发生错误。我试图添加到当前日期,以便使用我的DateAdd嵌入式数据库中的H2函数创建一个新的过期日期。

代码语言:javascript
复制
        PreparedStatement sql = c.prepareStatement("INSERT INTO BLOOMHEALTH.CLIENTS VALUES ( ?,?,?,?,?,DATEADD(?,?,?),?,?,?)");
        String mem = bloomClient.getSsMember();
        try {
            sql.setString(1,bloomClient.getFirstName());
            sql.setString(2,bloomClient.getLastName());
            sql.setString(3,bloomClient.getPhoneNumber());
            sql.setString(4,bloomClient.getBirthday());
            sql.setString(5,bloomClient.getStartDate());
            sql.setString(6,text);
            sql.setInt(7,num);
            sql.setString(8,systemDate());
            sql.setInt(9,bloomClient.getSessionAmount());
            sql.setString(10,bloomClient.getTrainer());
            sql.setString(11,bloomClient.getSsMember());// problem here aswell, says invalid parameter(unsure why)
            sql.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }

具体的例外是:

org.h2.jdbc.JdbcSQLDataException:转换“月份”的数据转换错误;SQL语句:插入BLOOMHEALTH.CLIENTS值( ?,?),?) - (?1,?2,?3,?4,?5,DATEADD(‘,?6,?7),?8,?9,?10) 22018-200

下面是为SQL语句发送的数据。

代码语言:javascript
复制
        weeks.setText("'WEEK'");
        months.setText("'MONTH'");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-19 01:46:49

最近发布的H2不再支持此函数中日期时间单元的参数化,因为它会引发其他问题。不幸的是,H2 1.4.200抛出了一个奇怪的异常,而不是实际的异常,这个问题是在发布后修复的。

您需要直接指定一个日期时间单元(DATEADD(MONTH, ?, ?))。如果需要支持多个单元,可以使用一个案例:

代码语言:javascript
复制
INSERT INTO BLOOMHEALTH.CLIENTS VALUES (?1, ?2, ?3, ?4, ?5,
CASE ?6
    WHEN 'MONTH' THEN DATEADD(MONTH, ?7, ?8)
    WHEN 'WEEK' THEN DATEADD(WEEK, ?7, ?8)
    -- put all additional units here
END
?9, ?10, ?11)

您还需要使用setText("MONTH")而不是"'MONTH'") (或者在使用WHEN '''MONTH''' THEN …的情况下可以使用'MONTH' )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65348129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档