我正在尝试从数据库中进行选择以获取日期为当月的“活动”。到目前为止,我已经成功地抓取了在当月内开始或结束的行。我现在需要做的是选择从一个月开始到几个月结束的行(例如: 这是一年中的第三个月,并且有一个从第一个月到第五个月的“活动”。其他示例有一个从 2012 年到 2013 年运行的“活动”)
我希望有某种方法可以通过 MySql 选择所有可能运行 capaign 的行。如果不是,我应该抓取数据库中的所有数据,只显示当月运行的数据。
我已经制作了一个函数,可以显示数组中每个日期之间的所有天数,称为“dateRange”。我还创建了另一个显示活动运行了多少天,称为“runTime”。
全选 (显然)
$result = mysql_query("SELECT * FROM campaign");
选择本月开始
$result = mysql_query("SELECT * FROM campaign WHERE YEAR( START ) = YEAR( CURDATE( ) ) AND MONTH( START ) = MONTH( CURDATE( ) )");
选择本月结束
$result = mysql_query("SELECT * FROM campaign WHERE YEAR( END ) = YEAR( CURDATE( ) ) AND MONTH( END ) = MONTH( CURDATE( ) ) LIMIT 0 , 30");
代码示例
while($row = mysql_fetch_array($result))
{
$dateArray = dateRange($row['start'], $row['end']);
echo "<h3>" . $row['campname'] . "</h3> Start " . $row['start'] . "<br /> End " . $row['end'];
echo runTime($row['start'], $row['end']);
print_r($dateArray);
}
关于日期,MySql 数据库只保存活动的开始日期和结束日期。