DB2选择不同的日期格式

时间:2018-08-07 08:15:32

标签: sql db2

我的问题是,在一个古老的数据库中,我需要基于日期查询两个表以匹配行。仅在一个表中的日期以YYYYMM表示为十进制(6),而在另一个表中的日期则以YYYY-MM-DD表示为日期。

如何将这两个表连接在一起?

在第一天或第一天的搜索中,我都非常高兴。

2 个答案:

答案 0 :(得分:1)

您可以使用TO_CHARVARCHAR_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))