ايهما أفضل لتخزين الوقت في قواعد البيانات unix time أم datatime ؟

السلام عليكم

كل عام و انتم مبرمجين :)

بالنسبة لunix time سنواجه معها مشاكل في السنوات القادمة.. حيث أنها تعد الثواني من 1970 و سنواجه مشكلة مع معالجات ال32 بت في 2038

أما بالنسبة للوقت datatime فيصعب التعامل معه في بعض النواحي

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

سنواجه مشكلة مع معالجات ال32 بت في 2038

لا علاقة للمعالج في مشكلة 32بت

الكلام أنا أخذته من

في نهاية الصفحة:

What happens on January 19, 2038?

On this date the Unix Time Stamp will cease to work due to a 32-bit overflow. Before this moment millions of applications will need to either adopt a new convention for time stamps or be migrated to 64-bit systems which will buy the time stamp a "bit" more time.

اجل و لكن لا يذكر المعالج في الاقتباس.

و ايضا لا داعي للقلق على هذه المشكلة، لأن اي شيء ستبنيه الان لن يبقي لل10 سنين القادمة، فضلا الى سنة 2038.

مجهول
  • حذف بواسطة المستخدم

لوقتها يحلها الحلال وتقوم بعمل migration، استخدم الأنسب للمشكلة الحالية

صديقي العزيز نحن تجاوزنا معالجات 32 بت منذ فترة طويلة وحتى عام 2038 سيكون الالاف من الحاسبات المعتمدة على تلك المعالجات في المتاحف. لماذا هذا القلق الشديد. لن اتصور ان تستضيف برنامجك على خادم ٣٢ بت !

شخصيا استخدم Timestamp والذي هو النوع الاول لانه يسهل نقله من محرك قواعد بيانات الى اخر اذا اسلتزم الامر بدون تحويلات او حسابات كما انه سلس في طبقة البزنس لوجك حيث تتوافر دوال لتحويله الى كائن تاريخ ووقت في اللغة التي تكتب بها برنامجك.

دائما ما اقوم بحفظ الوقت سواء فى قواعد البيانات او فى الملفات بالunix time, لأنه اسرع, عندما تحول الوقت لرقم تختصر الكثير من تعقيدات التعامل مع التواريخ, معظم محركات قواعد البيانات تتعثر فى مقارنات الوقت و الindexing بالوقت و تضطر الى كتابة SQL statements طويلة جدا لشىء بسيط مثل المقارنة بين تاريخ و اخر,

لذا فبتحويل كل شىء الى الunix time تختصر كل هذه المشاكل.

عام 2038 بعيد جدا, ليس قبل عام 2035 لنفكر بحل هذه المشكلة!

بالفعل unix time اسهل و عملي أكثر

لكني خشيت أن أكون على خطأ بستخدامي له

شكرا جميعا على التعليقات الثمينة