在mysql中显示开始日期和结束日期之间的日期

时间:2012-11-20 12:55:41

标签: php mysql

好的,这个让我感到难过,不确定是否有可能。我有一个包含开始和结束日期的数据库。例如,开始日期2002和结束日期2012,但我想要做的是列出这两个点之间的所有日期,例如2003,2004,2005等。

但是这些日期不在数据库中,所以我想要做的就是自动创建它们。这可能吗?,我的另一个想法是创建第二个数据库,其中包含连接和列出所有日期。

刚刚提出一些建议,确实是最好的方法。

由于

3 个答案:

答案 0 :(得分:0)

你的sql看起来像那样

  $query = "SELECT starttime st ,endtime et FROM your_table WHERE id = your_user_id_variable ";
  $row = mysql_fetch_array($result) or die(mysql_error());

然后使用这个PHP代码

   for($i=1 , $i<$row['et'],$i++){
      echo $row['st']+$i.", " ;
            }

然后它将回应2003,2004,.....,2011

答案 1 :(得分:-1)

这样的事情应该用PHP来完成。

使用PHP提供的几个日期功能。 您可以使用mktime()创建时间戳,然后使用strtotime()进行循环。

$start = mktime(0, 0, 0, 1, 1, 2002);
$end = mktime(0, 0, 0, 1, 1, 2012);

$currentDate = $start;
while($currentDate < $end) {
    echo date("Y", $currentDate) . "<br />";

    $currentDate = strtotime("+1 year", $currentDate);
}

没有测试过,但应该可以使用。

strtotime()

mktime()

List of all date functions in PHP

答案 2 :(得分:-2)

你必须在功能之间使用

SELECT * FROM Persons
WHERE LastName
BETWEEN (2003 AND 2004);