簡體   English   中英

查找日期范圍內的所有數據,然后計算每月總計

[英]Find all data in date range then calculate total per month

我有一個mysql表,其中每個記錄都有一個startDateTimefinishDateTime 我希望能夠返回每個月的總時間。

我當前的查詢是這樣的:

$dateRange = "BETWEEN '$startDate' AND '$finishDate'"; 

$sql = 
"SELECT 
    TIMESTAMPDIFF(MINUTE, StartDateTime, FinishDateTime) As Duration,
    StartDateTime As Start, FinishDateTime As Finish
FROM Entries
WHERE StartDateTime $dateRange AND FinishDateTime $dateRange";

表條目

| StartDateTime       | FinishDateTime |
| 2016-08-18 10:00:00 | 2016-08-18 11:00:00 |
| 2016-08-18 12:00:00 | 2016-08-18 14:00:00 |
| 2016-08-31 17:00:00 | 2016-09-01 09:00:00 |

Desired Output
| Month               | Duration       |
| Aug                 | 10             |
| Sept                | 9              |

它將返回每個記錄的持續時間,但不返回每個月的總計。 我需要在此查詢中添加或更改什么才能獲取所需的數據?

假設每個條目都在同一月開始和結束,請嘗試以下操作:

$sql = 
    "SELECT 
        SUM(TIMESTAMPDIFF(HOUR, StartDateTime, FinishDateTime)) As Duration
    FROM Entries
    WHERE 
        YEAR(StartDateTime) = YEAR(FinishDateTime) 
        AND MONTH(StartDateTime) = MONTH(FinishDateTime)
        AND StartDateTime $dateRange 
        AND FinishDateTime $dateRange
    GROUP BY MONTH(StartDateTime)";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM