我已经准备了一个MySql查询,通过排除特定日期的列表,从给定日期获取确切的第7个过去日期 即。
如果我将日期作为2016-10-21
传递,则输出'将为2016-10-12
,排除指定逗号分隔日期2016-10-16,2016-10-15,2016-10-10
的特定日期。{I} ;尝试了一些事情
SELECT *
FROM
table where id = 46 and
(
startdate >= DATE_SUB("2016-10-21 00:00:00",INTERVAL 7 DAY) and
startdate <= DATE_SUB("2016-10-21 23:59:59",INTERVAL 7 DAY) and
startdate NOT IN ('2016-10-16 00:00:00','2016-10-15 00:00:00','2016-10-10 00:00:00')
)
但它似乎没有按预期工作。如何在DATE_SUB
函数
输入:2016-10-21
预期输出:2016-10-12
答案 0 :(得分:1)
首先,我会从今天的日期,每个排除日期中减去。如果结果是&lt; = 7,我会为每个增加'c'计数器。
最后,我只需要将'c'添加到'7',然后创建一个简单的DATE_SUB,其中包含原点日期和向计数器添加7的结果。