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

问题描述 投票:1回答:2

我写了下面的查询来获取记录:

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');

我得到了结果,但我希望这些结果使用'='参数。我的查询应该做些什么改变?

sql oracle date for-loop criteria
2个回答
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');

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);

获取数据等于当前日期

© www.soinside.com 2019 - 2024. All rights reserved.