2015-07-11 96 views
-3

这是我的查询它工作正常。获取日期范围,当没有日期存在表

但我想获取缺少日期的空白记录,当该日期范围内没有记录时,从表中获取数据。

SELECT * from tbl_social where `dCreatedDate` BETWEEN 
DATE_ADD('2015-07-06', INTERVAL 3 DAY) and DATE_SUB('2015-07-06', INTERVAL 3 DAY); 

enter image description here

如果日期没有记录“2015年7月8日”我需要在上市当日行也。

感谢你。

+0

'或dCreatedDate为空' – amdixon

+1

是的,如果这些范围之间没有记录,则应该是所有日期。 – user2105662

回答

0

您可以进行一些更改查询,并把所有这些数据是不是在这个特定范围

,也没有日期。做这样尝试这样的事情

SELECT * FROM SELECT * from tbl_social 
WHERE (
      `dCreatedDate` NOT BETWEEN DATE_SUB('2015-07-06', INTERVAL 3 DAY) 
      AND DATE_ADD('2015-07-06', INTERVAL 3 DAY) 
    ) OR (`dCreatedDate` IS NULL) 

NOT BETWEEN将寻求那些不符合条件的记录,并与NULL会看到那些记录dCreatedDate是空白的,并获取所有数据进行匹配两个标准

+0

谢谢你的回答。但是我想返回那个日期而不是空白。 – user2105662

+0

这个日期你是什么意思,如果你不想要空白记录,那么在'is'后面加'NOT' –

+0

我正在提取'2015-07-06'下一个和前3天的记录。所以如果在该日期之间不存在记录即。如果没有'2015-07-08'的记录,那么我希望该日期的响应意味着在dCreated日期中不存在日期。 – user2105662