الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إزاي نطرح التواريخ و تكون النتيجه بالايام

مغلق
بدأه shenzy في 1 يوليو 2007 · 3 رد · 680 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

دلوقتي انا عندي جدول فيه تاريخ انتهاء الصلاحيه و الايام الباقيه على انتهائها

ازاي اعمل trigger يطرحهم من بعض و الناتج يكون بالايام

انا جربت الtrigger ده

creat trigger salhya on x for insert as update x
set rest= getdate()-expiredate
from inserted,x where inserted.code=x.code

بس بيطلع حاجات عجيبه

لو كان expiredate

30/8/2007

بيطلع الrest

1/30/1900

i hope someone here tell me how to make it

#2

وعليكم السلام ورحمة الله وبركاته

استخدم DateDiff على الشكل التالي:

DATEDIFF ( datepart , startdate , enddate )

وظيفة التابع هو حساب الفرق بين تاريخين محددين من خلال البرامترين startdate و enddate

datepart: هذا البرامتر لتحديد أي نوع النتيحة التي ستعود هل هي بالأيام أم بالأشهر.....

الجدول التالي يوضح خيارات البرامتر datepart في الرابط التالي:

http://msdn2.microsoft.com/en-us/library/ms189794.aspx

على سبيل المثال:

Select DateDiff(day, '1-24-2007', '7-30-2007')

سيكون الناتج: 187 يوم

#3
create trigger xy on x for insert as update x
set x.rest=datediff(day,getdate(),x.expiredate) 
from inserted,x where x.code= inserted.code

شكرااااااااااااااااااااااااااا على الfunction الجامده دي

بس ياريت تقولي ازاي نعمل trigger بحيث كل ما يعدي يوم يطرح من rest واحد

thanks again

#4

من المعلوم ان ال trigger تعمل عند القيام بحركات على الجدوال ولا يمكن توقيتها بشكل يومي لذلك ما تبحث عنه ليس موجودا بها .

كما ان الايام الباقية للمنتج تعتمد على تاريخ الصلاحية لذلك من الخطأ وضعها كحقل (normalization ) وانما بدل ذلك يمكنك عمل استعلام او view لذلك مثال

select   DATEDIFF ( day, exdate , getdate() ) as exdays from mytable

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…