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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要从db获取当前日期的记录(不包括时间)相关的知识,希望对你有一定的参考价值。

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

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

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

答案

使用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');
另一答案
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);

获取数据等于当前日期

以上是关于需要从db获取当前日期的记录(不包括时间)的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

ASP - 从 MS Access DB 获取记录时遇到日期格式(在 WHERE 子句中)

SQL Server 从当前日期计算天数,不包括另一个表中的天数

在 where 子句中从当前日期减去 30 天

在sql中获取从当前日期起最近90天的记录

检查来自 db 的日期是不是从当前日期过去两周