php - 从日期时间计算加类时间

标签 php mysql

我正在尝试根据 07:24:00:0000 小时的加类系数计算加类时间

我的数据库是这样的

| id  |user_id|     starttime       | endtime
|  0  |   1   | 2018-05-09 04:30:00 | 2018-05-09 017:30:00
|  1  |   1   | 2018-05-10 06:30:00 | 2018-05-10 017:30:00
|  2  |   1   | 2018-05-11 04:30:00 | 2018-05-11 015:30:00

我很难找出可以完成这项工作的 selectstatement - 结果我想要 ALL 合并加类

我现在的功能是这样的:

public function getOvertimeTotal($id, $selectedMonth) {
      $this->db->query("SELECT 
      COUNT(SUBTIME(TIMESTAMPDIFF(HOUR, starttime, endtime), '07:24:00:0000')) as overTimeTotal
      FROM hours
      WHERE user_id = :id
      AND month(starttid) = :selectedMonth");

      $this->db->bind(':id', $id);
      $this->db->bind(':selectedMonth', $selectedMonth);

      $row = $this->db->single();

      return $row;

    }

我做错了什么?

最佳答案

这应该可以帮助您以小数小时计算加类时间,

SUM((TIMESTAMPDIFF(SECOND, starttime, endtime) - TIME_TO_SEC('07:24:00:0000')) / 3600)

SQLFiddle link


如果您需要及时转换回来的值,请从上面删除除以 3600 的部分并使用 SEC_TO_TIME() 函数

SEC_TO_TIME(SUM(TIMESTAMPDIFF(SECOND, starttime, endtime) - TIME_TO_SEC('07:24:00:0000')))

关于php - 从日期时间计算加类时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254683/

相关文章:

php - Laravel 使用 insert() 和 convert() 绑定(bind)参数

php - PHP 数据库查询中的 Declare 函数等效项是什么?

php - WooCommerce - get_order() 不起作用,它返回零

mysql - 如何在mysql中将句子拆分为单词

php - 如何使复选框动态化(选中选项)

MySQL 触发器返回多行

drupal - 使用 syslog 和 nginx/php-fpm

php - PDOStatement::execute(): SQLSTATE[HY093]: 参数号无效:参数未定义

mysql - 获取表A中的所有记录,如果满足表B的条件

MySQL 左连接子选择