Я вычислительное TotalHours
из сотрудника работал в офисе на основе Intime
и Outtime
равнодействующей в виде hh.mm
как 8.30
.функция SQL DateDiff привело к переполнению
Итак, я написал ниже SQL-запрос:
SELECT EMPLOYEEID, sum(DateDiff(mi,isnull(In_Time,0),isnull(Out_Time,0))/60) +
sum(round(DateDiff(mi,isnull(In_Time,0),isnull(Out_Time,0))%60,2))/100.0 +
sum(round(DateDiff(ss,isnull(In_Time,0),isnull(Out_Time,0)),2))/10000.0 as
TotalHours from HR_EMPLOYEES
Этот запрос SQL Server правильно работает intially, но теперь она дает следующее исключение:
java.sql.SQLException: The datediff function resulted in an overflow. The number of
dateparts separating two date/time instances is too large. Try to use datediff with a
less precise datepart.
Может кто-нибудь, пожалуйста, помогите мне избавиться от этого?
По какой-либо причине вы не можете просто использовать 'DateDiff' с опцией часов вместо всех этих формул? Я также ставлю, что, поскольку вы проверяете нулевые значения, вы получаете минимальную дату назад - и, поскольку вы запрашиваете секунды, это то, что переполнено – Charleh
Возможно, вы хотите просто вернуть 0 для нулевой даты вместо – Charleh
, если возможно, я хочу вернуться время 7:00 PM для нулевой даты вместо – User12345