سؤال

حق. كنت أدرج تحميلا من البيانات في MySQL DB واستخدم ما يلي لإنشاء الطابع الزمني:

$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);

لسوء الحظ، تم خلط اليوم والشهر، وما يلي هو الطابع الزمني الصحيح.

$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);

حوالي 5000 سجل. ما هي أسهل طريقة للقيام بالتحديث بالجملة والتصحيح؟

شكرا جزيلا!

هل كانت مفيدة؟

المحلول

هل تتيح لك مشغل قاعدة البيانات إدراج تواريخ مستحيلة، أو لم يكن لديك أي تاريخ مع حقل اليوم> 12؟

في أي حال، ربما يمكنك إصلاحه ببيان تحديث واحد، لكن بناء الجملة يعتمد على محرك قاعدة البيانات الذي تستخدمه.

ل mysql سوف تستخدم:

UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')

نصائح أخرى

لا يمكنك ذلك. عن طريق التفسير، سأقدم مثالا:

افترض أنك تقصد: اليوم 13، الشهر 2، عام 1990، لكن هذا كان قراءا على النحو التالي: اليوم الثاني، الشهر 13، سنة 1990 منذ الأشهر في السنة تحقق فقط ما يصل إلى 12، سيتم التعامل مع هذا على النحو التالي: اليوم الثاني، الشهر 1، عام 1991.

ولكن لنفترض أنك تعني: اليوم الأول، الشهر 2، عام 1991 كان قد تم قراءة هذا النحو: اليوم 2، الشهر 1، عام 1991

لذلك إذا رأيت اليوم 2، الشهر 1، سنة 1991 في قاعدة البيانات، مما أتأر منه؟

هذا مثل القول، لقد تربيع عدد صحيح، والنتيجة هي 36. ما الذي أبدأ به، -6 أو 6؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top