我有一个在表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
在这里我需要适应此查询任何想法?
作为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
你将无法利用该字段的任何指标,所以强制扫描,而不是寻求。
我缺少的东西吗? 你可以只是转换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