помощь. У меня есть этот запрос в mysql. То, что он делает, это комбинировать поля из трех таблиц. Одно поле (Продолжительность (h)) вычитает время окончания и время начала. Майские данные времени представлены только в виде времени и не даты. Поэтому я решил использовать функцию timediff. Это хорошо работает на время в тот же день. Но не разница во времени, как 00:00 - 23:30; в этом случае я получаю ответ -23.5. Что я могу сделать, чтобы исправить это. Заранее спасибо.Время вычитания с использованием timediff
SELECT `tblproductiondata`.`productionDay` , `tbllinestoppagecategories`.`category` , `tblshifts`.`ID` , `tblstoppagedescriptions`.`endTime` , `tblstoppagedescriptions`.`startTime` , IFNULL(ROUND(`tblstoppagedescriptions`.`duration(mins)` /60, 2) , ROUND((
TIME_TO_SEC(TIMEDIFF(`tblstoppagedescriptions`.`endTime` , `tblstoppagedescriptions`.`startTime`)) /3600) , 2)
) AS `Duration (h)`
FROM (
`tbllinestoppagecategories`
INNER JOIN `tblstoppagereasons` ON `tbllinestoppagecategories`.`categoryID` = `tblstoppagereasons`.`stoppagecategory`
)
INNER JOIN (
`tblshifts`
INNER JOIN (
`tblproductiondata`
INNER JOIN `tblstoppageDescriptions` ON `tblproductiondata`.`productionID` = `tblstoppagedescriptions`.`prodDate`
) ON `tblshifts`.`ID` = `tblproductiondata`.`shiftName`
) ON `tblstoppageReasons`.`resID` = `tblstoppagedescriptions`.`stoppageReason`
WHERE (
(
(
`tbllinestoppagecategories`.`category`
) <> "Changeover Maintenance Activities"
)
)
ORDER BY `tblproductiondata`.`productionDay` ASC
какие поля содержат дату начала и дату окончания? – arilia
'tblstoppagedescriptions' .'startTime' и' tblstoppagedescriptions' .'endTime'. Я занимаюсь только временами в этих полях –
эти два поля на время, но вы сохраняете дату (день) в каком-то другом поле? Чтобы вычислить разницу во времени, вы должны знать две даты. – arilia