繁体   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