簡體   English   中英

比較SQL Oracle中的兩個日期列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM