【发布时间】:2019-01-16 21:48:41
【问题描述】:
我是堆栈溢出的新手,想问您是否可以查看我的代码并给我一些改进它并获得所需结果的提示。
我从这样的表开始:
Table `time`:
|id|datetime |type|
|97|2019-01-16 17:22:41|7 |
|96|2019-01-16 16:25:36|5 |
|94|2019-01-16 08:35:01|2 |
|93|2019-01-16 07:45:28|1 |
..还有其他日子,采用相同的方案,但类型不同。
为了获得唯一的日期,我使用了这个查询:
"SELECT DISTINCT date(date_format(datetime, '%Y-%m-%d')) as uniquedates, active FROM time WHERE active = 1"
在此之后,我使用生成的单日/日期来获取最低/最高数据,如下所示:
if($count != 0)
{
while($row = $statement->fetch())
{
$dates[] = $row['uniquedates'];
}
}
foreach($dates as $date)
{
$statement = $pdo->prepare("SELECT MIN(type) AS lowest, MAX(type) AS highest FROM time WHERE datetime LIKE '%$date%'");
$result = $statement->execute();
//error handling
while($row = $statement->fetch())
{
echo $date ." -> ". $row['lowest'] ." +> ". $row['highest'] ."<br>";
}
}
所以,我得到如下结果:
2018-12-03 -> 1 +> 7
...
2018-12-13 -> 1 +> 7
2018-12-14 -> 5 +> 6
2018-12-17 -> 1 +> 7
...
2018-12-20 -> 1 +> 7
2018-12-24 -> 10 +> 11
2018-12-21 -> 8 +> 9
2019-01-07 -> 1 +> 7
2019-01-08 -> 1 +> 7
2019-01-11 -> 1 +> 7
2018-12-27 -> 10 +> 11
2018-12-28 -> 10 +> 11
2019-01-14 -> 1 +> 7
2019-01-15 -> 1 +> 7
2019-01-16 -> 1 +> 7
...
这显示日期和链接的低/高值。
不幸的是,我无法从那里获取日期时间值,所以我被困在这里。
我想返回一个数组,其中仅包含每天最低和最高行的日期时间。
从我的表格示例来看,第 93 行和第 97 行。
|id|datetime |type|
|97|2019-01-16 17:22:41|7 |
|93|2019-01-16 07:45:28|1 |
我很确定这比我的尝试要容易得多。 :)
感谢您花时间阅读我的第一篇文章。 非常感谢任何提示/帮助/示例!
问候 亚历克斯
【问题讨论】:
标签: php mysql datetime pdo distinct