أود السؤال عن مقارنة الوقت وذلك trigger يمنع الادخال اذا كانت قيمة الوقت الحالي أكبر من وقت معين .. بحثت في المنتدى ووجدت أن الموجود يتعلق بمقارنة التاريخ..
مقارنة الوقت
هل يكفيك هذا المثال ؟
declare @d datetime declare @c datetime set @d=convert(datetime,'15/10/2005',103) set @c=convert(datetime,'19/8/2005',103) if (@c > @d) begin print @c end else begin print @d end
أشكرك أخي محمد ،ولكن ليس هذا مقصدي..
لنفترض أن هناك جدول معين يقوم فيه المستخدمون بعمليات مختلفة ، المطلوب هو منع المستخدم من أية عملية اذا كانت هذه العملية في غير الوقت المسموح به ، مثلا الوقت أكبر من 8.00 مساء..
أرجو ان الصورة قد اتضحت..
من لمح فجر الأجر هان عليه ظلام التكليف
اقتباسالمطلوب هو منع المستخدم من أية عملية اذا كانت هذه العملية في غير الوقت المسموح به ، مثلا الوقت أكبر من 8.00 مساء..
يمكنك ببساطة استخلاص الساعة فقط من ساعة السيرفر بالدالة datepart مع تمرير hh كمعامل أول لها (تمرير hh لهذه الدالة يجعلها تستخلص جزء الساعة فقط من التاريخ الممرر لها)، ومقارنة رقم الساعة المستخلص مع الوقت المسموح به، ومن ثم تنفيذ العملية إن كان الوقت يسمح.
قمت بكتابة هذا الإجراء المخزن البسيط الذي يمكنك مناداته من برنامجك، ويمكن تحويله فيما بعد لtrigger مربتط بجدول معين:
create procedure IsItNow8PM as if datepart(hh, getdate())>=20 select 1 as Lateness else select 0 as Lateness
قصدت بالرقم 20 الساعة 8 مساء كما ذكرت في سؤالك.
ولتنفيذه:
exec IsItNow8PM
أتمنى أن يكون هذا ما تقصده. :)
تم تعديل هذه المشاركة بواسطة walcom في 6 مايو 2005 في 11:38
فكر بطريقة أخرى
هذا الموضوع مغلق.