好的,这让我很困惑,甚至不确定它是否可能。我有一个带有开始和结束日期的数据库。例如开始日期 2002 和结束日期 2012,但是我想要做的是列出这两个点之间的所有日期,例如 2003、2004、2005 等。
但是这些日期不在数据库中,所以我想做的是自动创建它们。这可能吗?我的另一个想法是创建第二个数据库,其中包含一个连接和所有日期的列表。
就在关于什么是解决这个问题的最佳方法的一些建议之后。
谢谢
你的 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
这样的事情应该用 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);
}
没有测试过,但应该可以。
你必须在函数之间使用
SELECT * FROM Persons
WHERE LastName
BETWEEN (2003 AND 2004);