我要比较 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-Mar-2006,offer_date 类似于 200605
我需要调整这个查询有什么想法吗?
As offer_date
是一个数字,并且精度低于您的实际日期,这可能有效......
- 将您的实际日期转换为格式字符串YYYYMM
- 将此值转换为 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
您将无法在该字段上使用任何索引,因此强制使用 SCAN 而不是 SEEK。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)