CREATE PROCEDURE [dbo].[comparrec] AS
begin
declare @d1 datetime ,@d2 datetime,@t1 datetime ,@t2 datetime
select @d1= replace (str(datepart(yyyy,getdate()),4)+
str(datepart(mm,getdate()),2)+
str(datepart(dd,getdate()),2),' ',0)
set @d2 = (select top 1 datein from tdtab
order by datein desc)
select @t1= replace( str(datepart(hh,getdate()),2)+
str(datepart(mi,getdate()),2)+
str(datepart(ss,getdate()),2),' ',0)
set @t2 = (select top 1 timein from tdtab
order by timein desc)
IF( (select datediff (dd,@d2 ,@d1)) =0 )
IF ( (select (datediff (hh,@t1,@t2)/24) ) >1)
begin
insert into dbo.a
values ('no transaction within one hour')
end
end
GO
عند تنفيذ البروسيجر ينتج الخطا التالي
Server: Msg 242, Level 16, State 3, Procedure comparrec, Line 19
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
علما بان البروسيجر يعمل عند حذف الجزء باللون الاحمر
وهذا البروسيجر يعمل على فحص قيمة في جدول بحيث يضيف سجل لجدول اخر عندما لايكون هناك عمليات ادخال على جدول tdtab
لمدة ساعة
عند فحص التاريج يعمل وعند فحص الوقت لا يعمل