首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle11g中比较两个日期

如何在oracle11g中比较两个日期
EN

Stack Overflow用户
提问于 2014-04-01 16:18:48
回答 6查看 3.4K关注 0票数 1

我是甲骨文新手。我需要将日期列与oracle 11g中的当前日期进行比较。

例如,我的表是

代码语言:javascript
复制
srno        dob
1       1992-04-01
2       1988-04-01  
3       1995-04-01  

所以我不得不用sysdate来压缩道布。如果匹配,则必须显示数据。

我已经尝试了这个查询来获得结果。

代码语言:javascript
复制
select dob 
from xyz 
where extract(month from dob)=extract(month from sysdate) 
  and extract(day from dob)=extract(day from sysdate);

但它不起作用。请告诉我我哪里错了。

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2014-04-01 16:28:13

代码语言:javascript
复制
select ...
where to_char(dob,'MMDD')=to_char(sysdate,'MMDD')
票数 1
EN

Stack Overflow用户

发布于 2015-01-31 18:11:06

在Oracle中有更简单的方法来比较两个日期。尝试下面的解决方案:

代码语言:javascript
复制
select random_date_1, random_date_2,

-- when you have to match the complete date
/* use to_char(random_date_1,'Dd-Mon-Yy hh24.mi.ss') 
 when comparing date time */
/* use to_char(random_date_1,'Dd-Mon-Yy hh24')
 when only checking the date and hour (this is actually useful in a scenarios */

case when trunc(random_date_1) = trunc(random_date_2) 
then 'Match' else 'No Match' end as method_1,
case when to_char(random_date_1,'Dd-Mon-Yy') = to_char(random_date_2,'Dd-Mon-Yy') 
then 'Match' else 'No Match' end as method_2,

-- when you have to match only month
case when trunc(random_date_1,'Mon') = trunc(random_date_2,'Mon')
then 'Match' else 'No Match' end as method_3,
case when to_char(random_date_1,'Mon') = to_char(random_date_2,'Mon') 
then 'Match' else 'No Match' end as method_4

from
(select to_date(round (dbms_random.value (24, 31))
        || '-'
        || round (dbms_random.value (01, 01))
        || '-'
        || round (dbms_random.value (2015, 2015)),
        'DD-MM-YYYY') + level - 1 random_date_1, 
       to_date(round (dbms_random.value (27, 31))
        || '-'
        || round (dbms_random.value (01, 01))
        || '-'
        || round (dbms_random.value (2015, 2015)),
        'DD-MM-YYYY') + level - 1 random_date_2 from dual
connect by level <= 10);
票数 1
EN

Stack Overflow用户

发布于 2014-04-01 16:36:41

尝尝这个

代码语言:javascript
复制
SELECT DOB
FROM XYZ 
WHERE TRUNC (DOB) = TRUNC (SYSDATE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22780325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档