我看到一个表的数据值为18-May-2012
。但是,当我查询使用下面的查询寻找相同的日期,没有结果可用。当使用日期查询时,SQL查询不会显示结果
Select Submit_Dt From Siebel.S_Order_Dtl
where submit_dt = '18-May-2012'
你能帮我解决这个问题吗?
我看到一个表的数据值为18-May-2012
。但是,当我查询使用下面的查询寻找相同的日期,没有结果可用。当使用日期查询时,SQL查询不会显示结果
Select Submit_Dt From Siebel.S_Order_Dtl
where submit_dt = '18-May-2012'
你能帮我解决这个问题吗?
您需要将字符串日期转换成日期TO_DATE()函数。 此外,您还需要考虑到您的日期可能包含小时/分钟/秒。为了处理这个,你需要截断submit_dt列。
在你的情况是这样的:
Select Submit_Dt From Siebel.S_Order_Dtl
where TRUNC(submit_dt) = TO_DATE('18-May-2012','dd-MON-yyyy')
@Rafaz谢谢你,系统会隐式地将你输入的字符串日期转换为日期。这工作。 :) – RDPD
尝试使用to_date
日期为日期格式转换如下
Select Submit_Dt From Siebel.S_Order_Dtl
where submit_dt = to_date('18-May-2012','DD-MON-YYYY')
或ANSI语法'DATE'2012-05-18'' –
确保它不是日期列... –
1 NLS(http://docs.oracle.com/cd/A84870_01/doc /server.816/a76966/ch1.htm)格式可能不同。 2它可能有一个时间组件,所以试试'where trunc(Submit_dT)= '18-May-2012'trunc将时间组件放在submit_Date上。然后引擎会隐式地将字符串转换为日期,从而比较类似的组件。这假定submit_DT是一个日期/时间,而显示可能只会显示一个日期;但存储时间。如果是这种情况,上面的trunc应该可以工作。如果NLS格式是Oracle Default – xQbert