2013-08-01 6 views
0

В моей таблице есть столбец типа «ВРЕМЯ». Он имеет 2 строки со следующими значениями для компании A: 04:30:00 04:30:00 Я хотел всего тех 2 строк, которые будут записаны в файл CSV, используя кодMySql Проблемы с датой/временем

enter code here 

$sql2 = "SELECT company, SUM(intervalTime) 
    INTO OUTFILE 'd:/myfile/xxx.csv' 
    FIELDS TERMINATED BY ',' 
    FROM june2013 GROUP BY company"; 

    if (mysqli_query($con,$sql2)) 
    { 
    echo "Summary added to text file successfully"; 
    } 
    else 
    { 
    echo "Error transferring summary " . mysqli_error($con); 
    } 

результаты были переданы в файл CSV со следующими значениями: компанию 86000 компания б 420000 компания с 292000

Всего 04:30:00 + 04:30:00 должно быть 9 часов. Я получил в общей сложности 4300 + 4300. Любая идея, как я решаю эту проблему? Спасибо большое!

+0

http://stackoverflow.com/questions/1329458/mysql-how-to-sum-times – NDM

ответ

1

Вы не можете просто SUM в таком столбце времени, вам нужно сначала преобразовать его в числовое значение (математика работает с числами).

Попробуйте это:

$sql2 = "SELECT company, SEC_TO_TIME(SUM(TIME_TO_SEC(intervalTime))) 
    INTO OUTFILE 'd:/myfile/xxx.csv' 
    FIELDS TERMINATED BY ',' 
    FROM june2013 GROUP BY company"; 
0

Я полагаю, что для каждой компании есть два ряда. Тогда этот запрос может помочь:

select 
    t1.company AS com, 
    addtime(
     (select intervalTime from june2013 AS t2 where t2.company = t1.company LIMIT 1), 
    (select intervalTime from june2013 AS t2 where t2.company = t1.company LIMIT 1, 1) 
) AS dif 
into outfile 'd:/myfile/xxx.csv' 
FIELDS TERMINATED BY ',' 
from june2013 as t1 
group by t1.company; 

Даты суммируются правильно, используя функцию addtime (time1, time2). См. Документацию mysql.