甲骨文的SQL转换日期格式从DD-MON-YY到YYYYMM(Oracle SQL convert

2019-09-17 03:48发布

我有一个在表2比较日期,但问题是,一个表中有DD-MON-YY格式的日期和其他在YYYYMM格式。

我需要他们两个YYYYMM的比较。

我需要创造这样的:

SELECT * FROM offers 
WHERE offer_date = (SELECT to_date(create_date, 'YYYYMM') FROM customers where id = '12345678') 
AND offer_rate > 0

其中CREATE_DATE是像12月 - 2006年和offer_date是像200605

在这里我需要适应此查询任何想法?

Answer 1:

作为offer_date是一个数,比你的真实日期精度较低,这可能工作...
-将您的真实日期格式的字符串YYYYMM
- CONVER该值的INT
-比较结果您的offer_date

SELECT
  *
FROM
  offers
WHERE
    offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
AND offer_rate > 0 

此外,通过做所有的操作上create_date你只做一个值的处理。

此外,有你操纵offer_date你将无法利用该字段的任何指标,所以强制扫描,而不是寻求。



Answer 2:

我缺少的东西吗? 你可以只是转换offer_date的比较:

SELECT *
FROM offers
WHERE to_char(offer_date, 'YYYYMM') = (SELECT to_date(create_date, 'YYYYMM') FROM customers where id = '12345678') AND
      offer_rate > 0 


文章来源: Oracle SQL convert date format from DD-Mon-YY to YYYYMM