Я использовал дату и время проверки для планирования отчета ... Я должен запланировать, что отчеты для будущей даты и времени только и не предыдущая дата и time..I использовали этотОшибка сравнения даты и времени в sql?
declare @Dt varchar(50)
declare @Hr varchar(50)
declare @trandate_time_tmp as TIME(0)
select @trandate_time_tmp = getdate()
set @Dt = DATEDIFF (D,@schedule_date ,@trandate_tmp)
set @Hr = DATEDIFF (S,@schedule_date ,@trandate_time_tmp)
if (@Dt > 0)
begin
raiserror('Schedule Date should not be earlier than system date',16,1)
return
end
if (@Hr > 0)
begin
raiserror('Schedule Time should not be earlier than system time',16,1)
return
end
Для части даты он правильно проверять, но и для времени он бросает ошибку как
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.
'set @Hr = DATEDIFF (S, @ schedule_date, @ trandate_time_tmp)'. Вот. вы пытаетесь получить разницу в секундах, назначая ему переменную с именем '@ Hr'. Вам не нужно 'HH' вместо' S'? Кроме того, зачем использовать varchar для '@ Hr'? – shahkalpesh