当一个人有时间时如何比较相等的日期

How compare dates that are equal when one has time as well

我正在尝试比较日期,看起来我正在像在线示例那样进行比较,但是当我执行 >= 进行比较时,我只看到 returned 的日期行。当我只使用 = 它没有 return 任何东西。

这是我使用 >= 进行日期比较的查询:

select * 
from valhist_tbl --dmh
where 
CRTUPDDT >=  to_date('28-10-21','DD-MM-YY')
and metricvalue  <> 'Device Found'
order by CRTUPDDT asc

我看到很多这样的事情 returned:

CRTUPDDT                          METRICVALUE
28-OCT-21 12.00.00.069000000 AM   NOT FOUND
28-OCT-21 12.00.00.071000000 AM   NOT FOUND
...

我希望它这样做:CRTUPDDT = to_date('28-10-21','DD-MM-YY') 但这没有 return 任何行。

我认为比较等于和不大于与 returned 的内容有关,但我不确定如何解决它。另外,我不想看到重复的行 returned,但是有太多 distinct 让它永远消失。

这是 link 我在看:

比较一整天的范围:

SELECT * 
FROM   valhist_tbl --dmh
WHERE  CRTUPDDT >=  DATE '2021-10-28'
AND    CRTUPDDT <   DATE '2021-10-28' + INTERVAL '1' DAY
AND    metricvalue  <> 'Device Found'
ORDER BY CRTUPDDT asc

您也可以使用 TRUNC:

进行比较
SELECT * 
FROM   valhist_tbl --dmh
WHERE  TRUNC(CRTUPDDT) =  DATE '2021-10-28'
AND    metricvalue  <> 'Device Found'
ORDER BY CRTUPDDT asc

但是,如果您在 CRTUPDDT 上有一个索引,那么在后一个查询中将不会使用它;您需要在 TRUNC(CRTUPDDT) 上有一个基于函数的索引。