我的问题是,在一个古老的数据库中,我需要基于日期查询两个表以匹配行。仅在一个表中的日期以YYYYMM表示为十进制(6),而在另一个表中的日期则以YYYY-MM-DD表示为日期。
如何将这两个表连接在一起?
在第一天或第一天的搜索中,我都非常高兴。
答案 0 :(得分:1)
您可以使用TO_CHAR
或VARCHAR_FORMAT
将日期格式化为YYYYMM,然后将两个表连接在一起。
假设表A在col1中具有日期字段,而表B在col2中具有小数(6)字段,则如下所示:
select *
from A
join B on dec(varchar_format(a.col1, 'YYYYMM'),6,0) = b.col2
答案 1 :(得分:0)
您可以在这两个表上执行联接。假设第一个将日期存储为小数(6)的表是col1列中的A,而另一个表是B而日期存储为col2列中的表。查询将如下所示:
SELECT * FROM A, B
WHERE INT(A.col1) = INT(SUBSTR(B.col2,1,4)|| SUBSTR(B.col2,6,2))