如何在sql中传递多个日期

如何在sql中传递多个日期,sql,oracle,Sql,Oracle,我想选择多个日期。我从应用程序中传递一个字符串值,该字符串包含多个日期。我如何使用to_date将整个字符串转换为日期,或者是否有其他方法?我无法执行下面的查询 select * from emp where start_date in TO_DATE('11-Jan-15 20:30:00', '11-Jan-15 08:00:00', '11-Jan-15 20:00:00') 我也试过下面的那个 where STRT_TIME IN TO_DATE('11-Jan-15 2

我想选择多个日期。我从应用程序中传递一个字符串值,该字符串包含多个日期。我如何使用to_date将整个字符串转换为日期,或者是否有其他方法?我无法执行下面的查询

select * from emp 
where start_date in 
  TO_DATE('11-Jan-15 20:30:00', '11-Jan-15 08:00:00', '11-Jan-15 20:00:00')
我也试过下面的那个

where STRT_TIME IN 
  TO_DATE('11-Jan-15 20:30:00', '11-Jan-15 08:00:00', '11-Jan-15 20:00:00',
         'DD-MON-RR HH24:MI:SS')
所有这些都不起作用,但如果我删除最新的,它在数据库中工作正常,但从应用程序中我得到了错误


有人能帮我吗?

你需要在日期列表中创建一个
。。。到目前为止,有这么多人打电话给

where STRT_TIME IN (TO_DATE('11-Jan-15 20:30:00','DD-MON-RR HH24:MI:SS'),TO_DATE('11-Jan-15 08:00:00','DD-MON-RR HH24:MI:SS'),TO_DATE('11-Jan-15 20:00:00','DD-MON-RR HH24:MI:SS'))

您可以执行相反的操作:即使
成为字符(STRT_TIME,'DD-MON-RR HH24:MI:SS')
并将其与
字符串列表中的
进行比较-但这在大型数据集上表现不佳。

您可以尝试使用to\u char将日期转换为字符文字,而不是将字符文字转换为日期:

select * from emp 
  where 
    to_char(start_date, 'DD-MON-RR HH24:MI:SS')
  in
    ('11-Jan-15 20:30:00', '11-Jan-15 08:00:00', '11-Jan-15 20:00:00')

应用程序错误是?您的数据库引擎是?错误是java.sql.SQLDataException:ORA-01830:date格式图片在转换整个输入字符串之前结束,我确信这是因为我正在将字符串从应用程序传递到数据库。在执行之前,我需要将整个字符串转换为date,同时执行上述查询,我发现了问题