tôi đã cập nhật và xác nhận thời gian sử dụng cho lên lịch báo cáo ... Tôi phải sắp xếp rằng các báo cáo cho ngày trong tương lai và thời gian duy nhất và không hẹn hò trước và time..I đã sử dụng nàyLỗi so sánh ngày giờ trong 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
Đối ngày phần nó được kiểm tra một cách chính xác nhưng đối với thời gian nó được ném lỗi như
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)'. Đây. bạn cố gắng để có được sự khác biệt trong vài giây trong khi gán nó cho một biến có tên '@ Hr'. Bạn không cần 'HH' thay vì' S'? Ngoài ra, tại sao sử dụng một varchar cho '@ Hr'? – shahkalpesh