Oracle:将字段日期与实际日期进行比较

时间:2014-01-22 11:43:32

标签: sql oracle date

我将此请求用于obtein line,其字段日期等于实际日期,如下所示:

SELECT * FROM TB_VUE_SOLDE WHERE SO_COMPTE_ID = 661 AND SO_DATE = SYSDATE;

有了这个请求我的结果是空的

表TB_VUE_SOLDE:

(63162, 661, 22/01/14, 41188)

字段SO_DATE具有日期类型

当我尝试像这样显示sysdate时:

SELECT SYSDATE "Actual date" FROM DUAL ; 

I obtein:2014年1月22日

为什么我不能在第一次请求中反驳结果?

3 个答案:

答案 0 :(得分:2)

SYSDATE将包含一个时间元素。

尝试

  SELECT * FROM TB_VUE_SOLDE WHERE SO_COMPTE_ID = 661 AND SO_DATE = TRUNC(SYSDATE);

Trunc将删除时间元素。

答案 1 :(得分:0)

如果你做了

alter session set nls_date_format = 'dd/mm/yyyy hh24:mi:ss'

然后执行

SELECT SYSDATE "Actual date" FROM DUAL ; 

您会看到sysdate不仅是一天,还包含小时,分钟和秒。

这就是为什么sysdate很可能是!=您选择的日期。

答案 2 :(得分:0)

我在日期之前添加了TRUNC,它可以正常工作