在MySql中...
如何从MYSQL获取数组中排除今天的日期(每天最多2.30PM)数据行。 如何使用PHP + mysql发布今天的结果+最后3个结果...
示例表:ALLRESULTDATA
id price date
1 Rs.50 2015-12-09
2 Rs.5 2015-12-10
3 Rs.52 2015-12-11
4 Rs.55 2015-12-12
5 Rs.53 2015-12-13
6 Rs.53 2015-12-14
如何获取最近3天的结果(今天结果排除在今天发布后的下午2点30分)
mysql_query("select * from ALLRESULTDATA desc limit 4");
答案 0 :(得分:1)
这是一个查询,其中包含今天的行和过去三天的行:
SELECT *
FROM ALLRESULTDATA
WHERE
`date` = CURDATE()
OR
`date` >= DATE_ADD(CURDATE(), INTERVAL -3 DAY)
ORDER BY `date` DESC
LIMIT 4
SQL小提琴:http://sqlfiddle.com/#!9/88561/3
我认为你也意味着如果时间是在14:30之后才包含今天的结果,这可能是可能的,但在我看来它在MySQL中会很笨拙。
我认为你最好抓住php的当前时间,如果它更好,运行上面的查询,如果没有,运行一个不同的查询,例如:
SELECT *
FROM ALLRESULTDATA
WHERE
`date` != CURDATE()
AND
`date` >= DATE_ADD(CURDATE(), INTERVAL -3 DAY)
ORDER BY `date` DESC
LIMIT 3
即。将第一个条件运算符更改为!=
并将OR
更改为AND
,然后将LIMIT
更改为3
。
今天被排除的小提琴:http://sqlfiddle.com/#!9/88561/5
修改强>
我刚注意到您的评论说日期存储为VARCHAR(10)
,如果可能,我建议您更改架构,以便将日期存储为DATE
。
另一种选择是STR_TO_DATE()功能,但如果您不得不求助于它,我认为性能不会特别好。