我在下面的查询中写了以获取记录:
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');
我得到结果,但是我想要使用'='参数的结果。我应该在查询中做些什么更改?
答案 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);
获取等于当前日期的数据