需要从数据库获取当前日期(不包括时间)的记录

时间:2018-12-18 05:47:07

标签: sql oracle date for-loop criteria

我在下面的查询中写了以获取记录:

Select * 
  from Scf_Invoice i 
 where cast(i.inv_Acceptance_Date as date) = TO_DATE('2018-12-18', 'YYYY-MM-DD');

但是,即使给定日期有2条记录,我也没有结果。我认为这也在考虑时间。

Select * 
  from Scf_Invoice i 
 where cast(i.inv_Acceptance_Date as date) > TO_DATE('2018-12-18', 'YYYY-MM-DD');

我得到结果,但是我想要使用'='参数的结果。我应该在查询中做些什么更改?

2 个答案:

答案 0 :(得分:1)

使用trunc来获得一天

  trunc(i.inv_Acceptance_Date) =
  

TRUNC(日期)函数返回日期,其中一天中的时间部分被截断为格式模型fmt指定的单位。即使您为date指定了不同的datetime数据类型,返回的值始终是DATE数据类型。如果您省略fmt,则日期将截断为最近的日期

Select * 
from Scf_Invoice i 
where trunc(i.inv_Acceptance_Date) = TO_DATE('2018-12-18', 'YYYY-MM-DD');

答案 1 :(得分:0)

Select * 
  from Scf_Invoice i 
 where trunc(i.inv_Acceptance_Date) = TO_DATE('2018-12-18', 'YYYY-MM-DD');

Select * 
  from Scf_Invoice i 
 where trunc(i.inv_Acceptance_Date) = trunc(sysdate);

获取等于当前日期的数据