Oracle Date比较问题

时间:2014-02-06 04:50:03

标签: sql oracle

我有一张日期表,有一些非常奇怪的东西。

当我查询表格时

select distinct process_dt from table;

输出结果为:2013年11月16日

当我查询表格时

select process_dt from table 
where process_dt=to_date('20131116', 'YYYYMMDD');

输出为0记录。

当我查询表格时

select process_dt from table 
where process_dt=trunc(process_dt);

输出给出了100行,都是11/16/2013。

我不明白为什么我的第二个查询无效。任何的想法?我应该以某种方式改变会话吗?

2 个答案:

答案 0 :(得分:2)

您当前检查的问题是日期数据类型还包含时间。您需要在日期列中使用trunc才能使其正常工作。

答案 1 :(得分:-2)

而不是将DATE与另一个DATE进行比较......

将DateAsString与DateAsString ...

进行比较

SELECT * FROM TABLE WHERE TO_CHAR(process_dt,'mm / dd / yyyy')= '11 / 16/2013';

以下QUERY RETURNS 0 ROWS:正在转换sysdate>字符串>约会!! 从双重中选择TO_CHAR(SYSDATE,'YYYYMMDD') 哪里 SYSDATE = TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'),'YYYYMMDD')