Плохой результат от DATEDIFF

у меня есть таблица, где у меня есть столбец TIME_SEND (время (7)). В этой таблице у меня есть значение 09:50:00. Это мой код:

select DATEDIFF(mi,GETDATE(),(select TIME_SEND from FASTREPORT_SEND))

Я хочу указать разницу между фактическим временем (в минутах) и временем в столбце TIME_SEND.

Но результат таков:

-59850741

У вас есть идеи, почему это плохо?


person Kate    schedule 18.10.2013    source источник
comment
Разве результат не является отметкой времени? возможно, вам просто нужно правильно отформатировать его.   -  person Cesc    schedule 18.10.2013


Ответы (1)


Это количество минут между 09:50:00 1 января 1900 года и настоящим моментом. Вы сравниваете datetime с time, поэтому сервер услужливо расширяет значение time до datetime, чтобы он мог сравнивать яблоки и яблоки.

Этот запрос возвращает более разумный результат (в настоящее время 18):

select DATEDIFF(mi,CONVERT(time(7),GETDATE()),CONVERT(time(7),'09:50:00'))

Где я использовал CONVERT(time(7),'09:50:00') вместо доступа к вашим таблицам и данным.

person Damien_The_Unbeliever    schedule 18.10.2013