获取每小时插入数据库的行数

Get the number of rows inserted in the database per hour

我知道已经有类似的问题了,但我找不到简单明了的答案。

我有这个问题:

"SELECT dbo.tbTransaction.dateHeure, dbo.tbTransaction.Etat, dbo.tbPoste.nomPoste
        FROM dbo.tbTransaction 
        INNER JOIN dbo.tbPoste ON dbo.tbTransaction.ID_poste = dbo.tbPoste.ID_POSTE
        WHERE dbo.tbPoste.id_site LIKE 47 
        AND dbo.tbPoste.nomPoste LIKE '0909_CLIENT'
        AND dateHeure >= DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0)
        ORDER BY dateHeure DESC";

它使我能够获取特定 post(0909_CLIENT)上 day(>= DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0)) 的所有数据库插入,按最近插入时间排序(ORDER BY dateHeure DESC).

我希望能够检索每小时的插入次数,目标是能够按小时生成实时图形。

我设法获得了一天中的插入总数:

$params = array();
    $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
    $result = sqlsrv_query( $conn, $sql , $params, $options );
    $row_count = sqlsrv_num_rows( $result ). PHP_EOL;
    echo '<br>';
     if ($row_count === false)
     echo "Error in retrieveing row count;
    else {
      echo $row_count;
     } 

我可以看到在特定时间输入数据库的行:

$five = "05:";
$six = "06:";
$seven = "07:";


if ($result === false) {
    die(print_r(sqlsrv_errors(), true));
} else {
    while ($row = sqlsrv_fetch_array($result)) {
        $heureformate = $row["dateHeure"]->format('H:i');
        
        if (strpos($heureformate, $five) !== false) {
            echo $heureformate;
            echo '<br>';
            //count(array($heureformate));
        } elseif (strpos($heureformate, $six) !== false) {
            echo $heureformate;
            echo '<br>';
        } elseif (strpos($heureformate, $seven) !== false) {
            echo $heureformate;
            echo '<br>';
        } 
    } 
}

但是正如我告诉过你的,我无法获得每小时输入的行数,正是这个数字让我有兴趣创建图形。

如果您对如何在 SQLPHP 中获取此号码有任何想法,请帮助我。

是否要聚合?

select  datepart(hour, t.dateheure), count(*) as cnt
from dbo.tbtransaction t
inner join dbo.tbposte p on t.id_poste = p.id_poste
where p.id_site = 47 and p.nomposte = '0909_client' and t.dateheure >= cast(gedate() as date)
group by datepart(hour, dateheure)

这将过滤数据集中 dateheure 属于当天的行,并计算每小时有多少条记录。

请注意,我简化了日期过滤逻辑,并将like条件变为相等(因为不涉及通配符,两者是等价的)。