使用表达式IN时出现问题

时间:2018-02-15 08:39:47

标签: expression hsqldb jdbctemplate

使用:db:HSQLDB,jdbctemplate。

我创建了表格:

    <SELECTED_DATE ID="1" DATE_VALUE="2018-02-02 00:00:00.000000"/>
    <SELECTED_DATE ID="2" DATE_VALUE="2018-02-03 00:00:00.000000"/>
    <SELECTED_DATE ID="3" DATE_VALUE="2018-02-04 00:00:00.000000"/>
    <SELECTED_DATE ID="4" DATE_VALUE="2018-02-05 00:00:00.000000"/>
    <SELECTED_DATE ID="5" DATE_VALUE="2018-02-07 00:00:00.000000"/>
    <SELECTED_DATE ID="6" DATE_VALUE="2018-02-08 00:00:00.000000"/>

如何使用select * from SELECTED_DATE where DATE_VALUE in ( '2018-02-08', ... );

这会导致错误:java.sql.SQLSyntaxErrorException: data type of expression is not boolean

select * from SELECTED_DATE where DATE_VALUE IN ELEMENTS('2018-02-08', ...);

这会导致错误:java.sql.SQLSyntaxErrorException: unexpected token: ELEMENTS required: (

但是select * from SELECTED_DATE where DATE_VALUE = ( '2018-02-08');这样的工作

1 个答案:

答案 0 :(得分:0)

您的日期列实际上是TIMESTAMP列。

对于IN谓词,您需要声明值的类型:

select * from SELECTED_DATE where DATE_VALUE in ( DATE'2018-02-02', DATE'2018-02-03');

以上作品。如果您的SELECT语句仍然有效,请报告完整的声明。