我正在尝试对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/