الانتقال إلى المحتوى

سؤال عن ال Time Stamp


wael890610

Recommended Posts

حياك الله أخي الفاضل wael890610 ..
ونتمنى أن نراك دوماً ... :)
بشكل مبسط :
قبل أن نبين هذين المفهومين ؛ نبين مفهوم طابع الوقت TIMESTAMP :
هذا الطابع هو أحد أنواع البيانات الجميلة والمفيدة التي تقدمها Oracle9i ، وهو يشابه النوع DATE ، إلا أنه يمكننا في هذا النوع تحديد دقة الثواني SECOND ( في النوع DATE يمكننا تخزين الثواني كلها وليس أجزائها ) .
وتخزين دقة الثواني (أجزاء الثانية ) يكون على 6 خانات ، حيث 6 تمثل الإعداد الإفتراضي للحقل من النوع TIMESTAMP ، وتتراوح القيم المقبولة لدقة الثواني مابين 0 إلى 9 خانات .
أما ( TIMESTAMP WITH TIME ZONE ) والذي يعني طابع الوقت مع توقيت المنطقة :
فهو امتداد لنوع البيانات السابق (TIMESTAMP) ، فعندما ننسب قيمة إلى حقل من هذا النوع ؛ فإننا نقوم عندئذٍ بتحديد قيمة لطابع الوقت (TIMESTAMP)
مع إزاحة تمثل عدد الساعات والدقائق بين التوقيت المحلي وللمنطقة والإحداثيات الزمنية العالمية UTC (المعروف سابقاً بتوقيت جرينتش ) ..
إذاً مافائدة هذا النوع ؟ :)
أنه عندما نستخدم هذا النوع من البيانات ؛ تصبح برمجة توقيت المنطقة TIME ZONE سهلة ومبسطة للغاية ؛ فعندما نعرف متغيرين من هذا النوع فإن الفرق في التوقيت المختلف للمناطق يُعالج تلقائياً من قبل Oracle .
أما ( TIMESTAMP WITH LOCAL TIME ZONE ) فهو يشبه السابق ؛ إلا أنه في هذه الحالة يتم تخزين بينات توقيت المنطقة تبعاً للتوقيت المحلي لجلسة العمل الخاصة بنا .
الثلاثة المفاهيم السابقة خاصة بـ Oracle 9i فقط ، وهي من أنواع بيانات الوقت مثل الـ DATE ، وتعرف بنفس طريقة تعريف الـ DATE ..
وهذه الأنواع توفر عمليات برمجية كثيرة في الإصدارات السابقة ، أما في Oracle 9i فتُجرى عمليات البرمجة هذه من خلف الكواليس .
وفق الله الجميع لمايحبه ويرضاه ...

تم تعديل بواسطة الأسيف
رابط هذا التعليق
شارك

لا شكر على واجب أخوتي الأفاضل ...
وهذا أقل القليل ...

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...
  • بعد 4 أسابيع...
  • بعد 2 أسابيع...
  • بعد 5 شهور...

شرح الأخ OSS :

 

INTERVAL YEAR TO MONTH هو نوع جديد من أنواع البيانات و هو يخزن أرقام تعبر كفترة معينة و تخزنها بالشكل التالي ( Y-M ) ، فمثلا إذا إذا كان الحقل يحتوي القيمة (7-3) فهذا معناه 3 سنوات و سبعة أشهر ، و ممكن نستفيد منه كما يلي :

'01-MAR-04' + (3-7) = '01-OCT-05'

لا حظ كيف تغير التاريخ بمجرد عملية جمع عادية و ذلك باستخدام نوع البيانات INTERVAL ..

نفس الفكرة في استخدام DAY TO SECOND لكن مع إمكانيات أكثر مثل DAY TO HOUR و غيرها ..

رابط هذا التعليق
شارك

و بالنسبة لـ INTERVAL YEAR TO MONTH
فهو يستخدم لتخزين المدة الزمنية للأشهر أو السنين .. ولكي نعرف حقل من هذا النوع نستعمل الصيغة اللغوية التالية :

INTERVAL YEAR[ ( YEAR_PRECISION )]  TO MONTH



حيث تحدد YEAR_PRECISION عدد الخانات التي يمكن أن يحويها حق السنة في قيمة الفترة وتترواح الفترة المقبولة لها من 0 إلى 9 وقيمتها الإفتراضية تساوي 2 .

أما INTERVAL DAY TO SECOND

فيستخدم لتخزين الأيام والساعات والدقائق والثواني ، ولكي نعرف حقل من هذا النوع نستعمل الصيغة اللغوية التالية :

INTERVAL DAY[ ( DAY_PRECISION )]     TO SECOND [ ( SECOND PRECISION )]



حيث تحدد القيمة DAY_PRECISION و SECOND PRECISION عدد الخانات التي يمكن أن يحويها حقل DAY وحقل SECOND ، وتترواح الفترة المقبولة لعدد الخانات من 0 إلى 9 والقيمة الإفتراضية هي 2 للأيام و 6 للثواني ..

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

الله يوفقك يا أخونا الأسيف ، بس أحب أسأل عن شيء أرجو أن توضحه :
لماذا لا يمكن أن يكون الحقل من النوع TIMESTAMP WITH TIME ZONE مفتاح أساسي مثل أخويه الآخرين TIMESTAMP و TIMESTAMP WITH LOCAL TIME ZONE ؟

رابط هذا التعليق
شارك

  • بعد 1 شهر...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية