如何在特定的CREATE_DATE范围之间搜索记录

时间:2016-09-30 22:47:10

标签: sql oracle

我的表格的CREATE_DATE列中有时间戳,格式如下。

9/8/2016 5:37:35 AM

我需要在特定的CREATE_DATE范围之间搜索记录。请帮我说明如何做到这一点。

我已经使用了以下查询但得到了 ORA-01843:不是有效月份

select * 
from gdf.msg_pyld 
where dbms_lob.instr(pyld_clob,'4861615654')>=1 
and CREATE_DATE BETWEEN '09/08/2016 5:59:17 AM' AND '09/08/2016 5:59:17 PM';

1 个答案:

答案 0 :(得分:2)

您尝试的是将日期(具有非常特殊含义的数字类型)与STRINGS进行比较。这将永远不会奏效。

如果CREATE_DATE确实是Oracle中的DATE,那么这应该有效:

... AND CREATE_DATE BETWEEN to_date('09/08/2016 5:59:17 AM', 'mm/dd/yyyy hh:mi:ss AM') 
                        AND to_date('09/08/2016 5:59:17 PM', 'mm/dd/yyyy hh:mi:ss PM') 

假设09/08是9月8日;如果它应该是8月9日,那么在格式模型中将mm / dd更改为dd / mm。祝你好运!