我有一个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));