PHP日期间隔的MySql替代方案
我正在尝试创建一个有点复杂的报告(至少对我来说),因为它允许用户为报告选择一个时间间隔,并按较小的时间间隔分组,例如每天、每周、每两周、每月、每个季度等等。我发现了如何使用PHP DatePeriod和DateInterval函数生成间隔表列,但现在我不得不转换为MySql,以便将db列与PHP生成的html表列相匹配PHP日期间隔的MySql替代方案,php,mysql,date,group-by,intervals,Php,Mysql,Date,Group By,Intervals,我正在尝试创建一个有点复杂的报告(至少对我来说),因为它允许用户为报告选择一个时间间隔,并按较小的时间间隔分组,例如每天、每周、每两周、每月、每个季度等等。我发现了如何使用PHP DatePeriod和DateInterval函数生成间隔表列,但现在我不得不转换为MySql,以便将db列与PHP生成的html表列相匹配 <select class="form-control" id="columns" name="columns" tabindex="-1" aria-hidden="tr
<select class="form-control" id="columns" name="columns" tabindex="-1" aria-hidden="true">
<option value="1 day" selected="">Each day</option>
<option value="1 week">Each week</option>
<option value="1 month">Each month</option>
<option value="3 months">Each quarter</option>
<option value="1 year">Each year</option>
</select>
这是生成COL的php代码
除了在Mysql中,如何做同样的事情 我认为您只能使用
BETWEEN
SQL命令来解决您的问题。您的数据库不需要知道这些重要日期是什么,只需要保存这些数据
尝试这样做:
<?php
$sql = "SELECT id, name, something";
$sql .= "FROM table";
$sql .= "WHERE datefield BETWEEN :minvalue AND :maxvalue";
$stmt = $pdo->prepare($sql);
$stmt->execute([':minvalue' => $minLimit, ':maxvalue' => $maxLimit]);
$data = $stmt->fetchAll();
foreach($data as $item) {
// do something with your new set.
}
您要查找的是DATE_子函数,我们对您的模式一无所知。你一定是想要通灵论坛
<?php
$sql = "SELECT id, name, something";
$sql .= "FROM table";
$sql .= "WHERE datefield BETWEEN :minvalue AND :maxvalue";
$stmt = $pdo->prepare($sql);
$stmt->execute([':minvalue' => $minLimit, ':maxvalue' => $maxLimit]);
$data = $stmt->fetchAll();
foreach($data as $item) {
// do something with your new set.
}