如何从MYSQL获取数组中排除今天(最多2.30PM)数据行

时间:2015-12-14 11:23:25

标签: php mysql

在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");

1 个答案:

答案 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()功能,但如果您不得不求助于它,我认为性能不会特别好。