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

Posted

技术标签:

【中文标题】当一个人也有时间时如何比较相等的日期【英文标题】:How compare dates that are equal when one has time as well 【发布时间】:2021-11-17 20:15:57 【问题描述】:

我正在尝试比较日期,看起来我正在像在线示例一样进行操作,但我只看到当我 >= 进行比较时返回的日期行。当我只使用 = 时,它不会返回任何内容。

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

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

我看到很多这样的东西返回:

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') 但这不会返回任何行。

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

这是我正在查看的链接:date

【问题讨论】:

尝试在该列上使用trunc,这样它将排除日期的时间部分。喜欢trunc(CRTUPDDT) 这能回答你的问题吗? Comparing with date in Oracle sql 【参考方案1】:

比较一整天的范围:

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) 上建立一个基于函数的索引。

【讨论】:

我喜欢你和其他人提出的 trunc 想法。谢谢!

以上是关于当一个人也有时间时如何比较相等的日期的主要内容,如果未能解决你的问题,请参考以下文章

当一个人点击网页上的返回按钮时,Riverpod 给出一个糟糕的状态异常

当一个人创建一个新模型时,应该在哪里放置代码以在 Google App Engine/Django 上自动增加一个分片计数器?

(用JAVA实现)请使用日期相关的api,控制台输入出生日期,计算出一个人出生了多少年?

荐号 | 当一个人不联系你,不拉黑你,原因只有一个……!

#程序猿群一般都是潜水党,当一个人晒了他的键盘,群瞬间热闹了

如何在EditText中格式化人物高度以反映英寸和英尺?