2

好的,这让我很困惑,甚至不确定它是否可能。我有一个带有开始和结束日期的数据库。例如开始日期 2002 和结束日期 2012,但是我想要做的是列出这两个点之间的所有日期,例如 2003、2004、2005 等。

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

就在关于什么是解决这个问题的最佳方法的一些建议之后。

谢谢

4

3 回答 3

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

于 2012-11-20T13:21:43.647 回答
-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()

PHP中所有日期函数的列表

于 2012-11-20T13:03:52.080 回答
-2

你必须在函数之间使用

SELECT * FROM Persons
WHERE LastName
BETWEEN (2003 AND 2004);
于 2012-11-20T12:57:47.620 回答