我正在尝试对SQL查询中的Elapsed列进行SUM(),但是SQL数据库中Elapsed列的数据类型为text,因此无法更改它。我的尝试在下面,但是我继续收到“失败”消息。

<?php require 'dbcon.php'; ?>
$elapsed = "SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `STR_TO_DATE(Elapsed,'%d,%m,%Y') ) ) ) FROM Picks";
$s = $con->prepare($elapsed);
//$s->bind_param();
$s->execute();
$results = $s->fetchAll(PDO::FETCH_ASSOC);
if ($results){
    foreach($results as $result){
        foreach($result as $val){
            echo $val;
        }
    }
}
else {
    echo "failure";
}


SQL数据库中的“经过”列看起来像这样-Datatype as display in a datatable table

如果我忘记了更多有用的信息,请随时询问。谢谢!

最佳答案

看来您正在从查询中获取NULL值。问题出在您的STR_TO_DATE声明中;你正在使用

STR_TO_DATE(Elapsed,'%d,%m,%Y')

它们寻找day month and year values.尝试使用%H,%i,%s,它寻找小时分钟和秒,这是根据图片格式化“经过的”列的方式。

关于php - SUM()在SQL中具有文本数据类型的耗时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37754773/

10-16 18:58