[英]Compare two date columns in SQL Oracle
我有兩列,它們都存儲為'MM / DD / YYYYY HH:MM:SS AM(或PM)'。 我可以使用'TO_CHAR'將其更改為'MM / DD / YYYY'格式,但在我得到之后,我只想要兩列彼此不相等的日期(在TO_CHAR之后)。 我使用'!='但這不起作用,當兩個日期彼此相等時它仍會返回行。 我基本上希望字段忽略時間,並且只在兩個日期不同時返回行。
這是我試圖運行的查詢:
select r.project_name, to_char(r.created_on, 'MM/DD/YYYY'),
to_char(r.project_opened_on_date, 'MM/DD/YYYY')
from wh_project_repo r
where r.created_on != r.project_opened_on_date
有什么幫助嗎?
將日期存儲為字符串是沒有意義的。 但是你這樣做。
因為您有字符串,所以無需轉換為日期。 做得怎么樣:
select r.project_name, to_char(r.created_on, 'MM/DD/YYYY'),
to_char(r.project_opened_on_date, 'MM/DD/YYYY')
from wh_project_repo r
where substr(r.created_on, 10) <> substr(r.project_opened_on_date, 10)
但是,查詢的問題在於操作在select
。 這不會影響where
子句的比較。
編輯:
你也可以通過做比較值日期:
where to_char(r.created_on, 'MM/DD/YYYY') <> to_char(r.project_opened_on_date, 'MM/DD/YYYY')
問題不在於字符串比較。 問題是select
中的函數不會影響where
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.