我正在嘗試比較日期,看起來我正在像在線示例一樣進行操作,但是當我執行 >= 進行比較時,我只能看到回傳的日期行。當我只使用 = 時,它不會回傳任何內容。
這是我使用 >= 進行日期比較的查詢:
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') 但這不會回傳任何行。
我認為比較等于而不大于與回傳的內容有關,但我不確定如何解決它。此外,我不希望看到重復的行回傳,但有太多不同的行使其永遠消失。
這是我正在查看的鏈接:日期
uj5u.com熱心網友回復:
比較一整天的范圍:
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)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359861.html
上一篇:SQL中的模式匹配和資料整理
