Sql DB2选择不同的日期格式
我的问题是,在一个古老的数据库中,有两个表需要根据日期查询匹配行。只有一个表中的日期表示为YYYYMM(十进制数6),另一个表中的日期表示为YYYY-MM-DD 如何将这两个表连接在一起Sql DB2选择不同的日期格式,sql,db2,Sql,Db2,我的问题是,在一个古老的数据库中,有两个表需要根据日期查询匹配行。只有一个表中的日期表示为YYYYMM(十进制数6),另一个表中的日期表示为YYYY-MM-DD 如何将这两个表连接在一起 我非常乐意在任何一天或第1天进行搜索。您可以在这两个表上执行join。假设日期存储为十进制数(6)的第一个表是col1列中的A,另一个表是日期存储为col2列的B。查询如下: SELECT * FROM A, B WHERE INT(A.col1) = INT(SUBSTR(B.col2,1,4
我非常乐意在任何一天或第1天进行搜索。您可以在这两个表上执行join。假设日期存储为十进制数(6)的第一个表是col1列中的A,另一个表是日期存储为col2列的B。查询如下:
SELECT * FROM A, B
WHERE INT(A.col1) = INT(SUBSTR(B.col2,1,4)|| SUBSTR(B.col2,6,2))
您可以使用
TO_CHAR
或VARCHAR_format
将该日期格式化为YYYYMM,然后将两个表连接在一起
假设表A在col1中有date字段,表B在col2中有decimal(6)字段,它将如下所示:
select *
from A
join B on dec(varchar_format(a.col1, 'YYYYMM'),6,0) = b.col2