هناك مشكلة من هذا القبيل - في عام 2038 ،
سيتجاوز عدد الثواني من بداية عصر Unix Time قيمة int الموقعة وتختفي. هذا مثل مشكلة 2000 ، فقط أكثر تعقيدًا ، لأنك تحتاج إلى تغيير أنواع البيانات.
لذلك ... في MySQL ،
لمدة أربعة عشر عامًا ونصف ، تم تعليق طلب لإصلاح الدالتين UNIX_TIMESTAMP و FROM_UNIXTIME ، التي لا يمكن معالجة التواريخ بعد 19 يناير 2038. هذه وظائف لتحويل التواريخ إلى Unixtime والعكس صحيح.
التحقق من ذلك بسيط للغاية: جرب هذا الاستعلام.
select unix_timestamp('2038-01-20');
في عام 2017 ، حاول شخص لطيف إصلاحه ، ولكن لم يتم قبول التصحيح. مشاكل مع المناطق الزمنية ودعم أنظمة 32 بت.
إن التبديل إلى MariaDB ليس خيارًا أيضًا: فهناك خطأ
مغلق بالفعل.نهاية العالم قادمة ولا يمكننا إلا أن نصلي ... لهؤلاء المطورين.
PS الآن ، على محمل الجد:
هناك تحذير في الوثائق أن نوع TIMESTAMP يتحول إلى اليقطين بعد 2038. لكن لا أحد حذر من وظائف تحويل الوقت. اتضح أن جميع يونكس والعديد من لغات البرمجة قد تحولت بالفعل إلى طوابع زمنية 64 بت ، وأن وظائف MySQL فقط ستتوقف عن فهم Unixtime دون سبب واضح.