php - 使用 PHP 计算 MySQL 中多个日期条目之间的周数

标签 php mysql sql

因此,我正在开发一个豹纹壁虎繁殖系统,需要确定产卵之间的平均周数,以便粗略估计下一批卵的产卵时间。这是我用来选择壁虎 ID 的所有条目的 sql

SELECT * 
FROM clutches 
WHERE clutch_breeding_pair = 2 ORDER BY clutch_laid_date DESC

编辑 - 这是我的 SQL 查询

$stmt = $dbh->query("SELECT * FROM clutches WHERE clutch_breeding_pair = '$breedingPairID' ORDER BY clutch_laid_date DESC");
$stmt->setFetchMode(PDO::FETCH_ASSOC);  
$row_count = $stmt->rowCount();
$row = $stmt->fetch();

这里是我的 sql 表和联机查询的链接 - http://sqlfiddle.com/#!2/fb1c1e/4

我对 sql datediff 等不是很熟悉,所以不知道最佳实践是什么。抱歉,如果这个问题不够深入,我真的不知道要搜索什么以查看以前是否有过类似的问题。

如有任何帮助,我们将不胜感激!

最佳答案

这将平均每个 clutch_pair 组中每个 clutch_laid_date 之间的周数:

SELECT c.clutch_breeding_pair,
  ifnull(AVG(datediff(c.next_clutch_laid_date,c.clutch_laid_date)/7),0) average_weeks
FROM (
    SELECT c1.clutch_breeding_pair,
      c1.clutch_laid_date,
      min(c2.clutch_laid_date) next_clutch_laid_date
    FROM clutches c1
      left join clutches c2
        on c2.clutch_laid_date > c1.clutch_laid_date
        and c2.clutch_breeding_pair = c1.clutch_breeding_pair
    WHERE c1.clutch_breeding_pair = 2
    GROUP BY
      c1.clutch_breeding_pair,
      c1.clutch_laid_date
    ) c
GROUP BY
  c.clutch_breeding_pair

http://sqlfiddle.com/#!2/daae57/2

关于php - 使用 PHP 计算 MySQL 中多个日期条目之间的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23022138/

相关文章:

php mysql 更新表选项列表框

php - 如何使用 MSSQL 配置 XAMPP v. 3.2.2 (PHP 7.2)?

php - CodeIgniter 全局变量

python - mysql为一个人存储多个别名

php - 在 while 循环中使用 mysql 对象查询导致系统崩溃

php - 米克罗数据库 : how to perform a replace with where statement instead of primary key

php - 最有效的数据收集方式?

php - 样式表未链接

sql - 仅在哪里查询?

sql - 如何重新编号 T-SQL 的系统自增标识列?