我的表格的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';
答案 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。祝你好运!