Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期间隔的MySql替代方案_Php_Mysql_Date_Group By_Intervals - Fatal编程技术网

PHP日期间隔的MySql替代方案

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

我正在尝试创建一个有点复杂的报告(至少对我来说),因为它允许用户为报告选择一个时间间隔,并按较小的时间间隔分组,例如每天、每周、每两周、每月、每个季度等等。我发现了如何使用PHP DatePeriod和DateInterval函数生成间隔表列,但现在我不得不转换为MySql,以便将db列与PHP生成的html表列相匹配

<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.
}