Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql DB2选择不同的日期格式_Sql_Db2 - Fatal编程技术网

Sql DB2选择不同的日期格式

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

我的问题是,在一个古老的数据库中,有两个表需要根据日期查询匹配行。只有一个表中的日期表示为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)|| 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