2

これは私を困惑させ、それが可能かどうかさえわかりません. 開始日と終了日を持つデータベースがあります。たとえば、2002 年の開始日と 2012 年の終了日ですが、これら 2 つのポイントの間のすべての日付をリストすることを目的としています。たとえば、2003 年、2004 年、2005 年などです。

ただし、これらの日付はデータベースにないため、私がやりたいことは自動的に作成することです。これは可能ですか?私の他のアイデアは、結合とすべての日付のリストを使用して 2 番目のデータベースを作成することです。

これにアプローチするための最良の方法は何かについて、いくつかのアドバイスがあった直後です。

ありがとう

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 に答える