SQL 获取日期为 3 天后的结果


sql to grab results that have a date 3 days away

我有一个SQL查询,它应该从今天起获取3天的所有结果......但我不确定它用来比较的时间戳是否必须完全匹配,或者他们是否以我写的方式从当天的任何时间抓取任何帖子。这是我所拥有的:

SELECT * from wptb_clinic WHERE DATE(clinic_date) IN (DATE_ADD(CURDATE(), INTERVAL 1 DAY))

clinic_date 是保存在表中的时间戳 wptb_clinic .然后剩下的就是我得到的堆栈溢出的东西......这适用于设置为每天一次的 cron 作业,并向所有匹配的诊所发送提醒电子邮件......所以CURDATE()每次都会不同。

这是一个 sqlfiddle

http://sqlfiddle.com/#!9/0a1dc1/2

我添加了明天今天和后天的日期。 所以它应该找到一个

未来 3 天,将是

select  now()  + INTERVAL 3 day

如果您想在未来 3 天但在 0:00(午夜)内

select  date(now()  + INTERVAL 3 day)

因此,您的查询可能如下所示:

SELECT * from wptb_clinic WHERE clinic_date > date(now()  + INTERVAL 3 day)

以下是测试方法。如果要使用整数,则需要使用 FROM_UNIXTIME()。您始终可以使用"2015-06-25"等日期。

CREATE TABLE Clinics(
   `id` int, 
   `Name` varchar(250), 
   `date` timestamp
);
INSERT INTO Clinics
    (`id`, `Name`, `date`)
VALUES
    (1, 'clinic1', FROM_UNIXTIME(1456444800)),
    (2, 'clinic2', FROM_UNIXTIME(1456531200)),
    (3, 'clinic3', FROM_UNIXTIME(1456617600));
SELECT *
FROM Clinics
WHERE DATE(date) > (DATE_ADD(CURDATE(), INTERVAL 1 DAY));