2017-05-11 72 views
0

我加入了一个来自固定日期,并希望返回前一天的数据在另一个表中的ID列表我有两种方法,但他们返回不同的结果。日期为2017年1月2日的case statement v day-1 in join why different results?

on a.id = b.id 
and a.date = b.timestamp-1 

一个固定的日期我也尝试了case语句

on a.id = b.id 
and case when date = '2017-01-02' then b.timestamp = '2017-01-01' end 

任何想法,为什么这会产生不同的结果?

+0

请提供DDL或定义所涉及的列,并且越来越 – ScottMcG

回答

1

使用DATE_SUB()执行日期计算:

ON a.id = b.id 
AND a.date = DATE_SUB(b.timestamp, INTERVAL 1 DAY) 
+0

喜输出的一些描述,我们使用Netezza公司和它看起来像DATE_SUB不一个支持的函数 –

+0

我不知道Netezza,我的答案是MySQL。检查Netezza文档,它可能具有类似的日期功能。 – Barmar

+0

如果您不使用MySQL数据库,请勿使用MySQL标记。 – Barmar