如何从今天开始的日期获得记录?

时间:2015-01-28 07:20:55

标签: php mysql sql date

我有一张包含以下字段的表格。 event_idmonthdayyeareventplace。我想要的是根据日期显示即将到来的记录。这是我的代码,它给了我所有的数据。

$news = mysql_query("SELECT *  FROM tblupcomingevents limit 5") or die(mysql_error());
while($row = mysql_fetch_array($news))                  
<?php echo $row ["month"] ?>
<?php echo $row ["day"] ?>
<?php echo $row ["year"] ?>
<?php echo $row ["event"] ?>
<?php echo $row ["place"] ?>

4 个答案:

答案 0 :(得分:2)

最佳解决方案是以date()格式将日期存储在数据库中 然后使用以下查询

 SELECT *  FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() order by event__date limit 5;

答案 1 :(得分:1)

首先,您应该将日期存储在一列中,然后根据需要使用日期功能即时使用它们 在这种情况下,您可以使用以下查询

$news = mysql_query("SELECT *  FROM tblupcomingevents WHERE date >= DATE(NOW()) limit 5") or die(mysql_error());

你也可以在目前的情况下实现相同的目标,但你必须从数据库获得结果,然后你将循环它并检查未来一次并将它们存储在最终数组中,然后再次使用该数组。

因此需要加载而不是优化方法

答案 2 :(得分:1)

正确的解决方案可能是更改数据库以实际保存事件的日期,然后只查询它:

SELECT * FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() LIMIT 5

如果无法做到这一点,您可以使用str_to_date函数构建类似的行为:

SELECT * 
FROM   tblupcomingevents 
WHERE  STR_TO_DATE(CONCAT(`year`, `month`, `day`), '%Y%m%d') >=
       CURRENT_DATE()
LIMIT  5

答案 3 :(得分:1)

最佳解决方案是以date()格式将日期存储在数据库中 然后使用以下查询

SELECT *  FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() order by event__date limit 5;


$news = mysql_query("SELECT *  FROM tblupcomingevents WHERE event_date >= CURRENT_DATE() order by event__date limit 5") or die(mysql_error());
while($row = mysql_fetch_array($news))                  
<?php echo $row ["event_date"] ?>
<?php echo $row ["event"] ?>
<?php echo $row ["place"] ?>