Что вам нужно сделать, это сделать CASE WHEN
, чтобы увидеть, делятся ли ваши часы на 2, и они должны быть такими, чтобы они были больше 0.
Затем вы берете свои часыи разделите их на 2, чтобы получить два разных часа.Вы можете использовать функцию mysql HOUR()
для достижения этой цели.
Когда это будет сделано, вы преобразуете свой результат обратно во время, используя функцию SEC_TO_TIME()
, и умножаете соответственно, чтобы получить любой формат времени, который вы хотите, 60 дляминут, затем еще 60 часов.
Я использовал функцию MINUTE()
, чтобы получить минуты, и продолжил тот же подход, что и с часами.
Я придумал что-то вродеэто:
SELECT
empNo,
(
CASE
WHEN
extraHours > 0
THEN
SEC_TO_TIME(((HOUR(extraHours) / 2)*60)*60)
END) as otOne,
(
CASE
WHEN
extraHours > 0
THEN
SEC_TO_TIME(((HOUR(extraHours) / 2)*60)*60)
END) as otTwo,
SEC_TO_TIME(MINUTE(extraHours)*60) as otThree
FROM
tbl_time
Рабочая скрипта SQL
Если вам нужно дополнительное поле с секундами, вы просто используете тот же подход и используете функцию SECOND()
.
Этот ответ в основном относится к вашему другому вопросу, который был отмечен как дубликат.