2012-11-20 163 views
2

好吧,這個人讓我難以置信,不確定它是否可能。我有一個開始和結束日期的數據庫。例如開始日期2002和結束日期2012,但是我想要做的是列出這兩個點之間的所有日期,例如2003,2004,2005等。在mysql中的開始日期和結束日期之間顯示日期

但是,這些日期不在數據庫中,所以我想要做的就是自動創建它們。這是可能的嗎?,我的另一個想法是創建第二個數據庫與連接和列表中的所有日期。

就在一些建議真的是什麼將是最好的方法來解決這個問題。

感謝

+0

爲什麼不在你的代碼中做日期邏輯? – Perception

回答

-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

你有功能

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

仔細閱讀該問題:'但是這些日期不在數據庫中,所以我想要做的就是自動創建它們' – Martin

+0

答案與問題 –

+0

沒有關係確定單獨嘗試 – Daxen

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

相關問題