MySQL date_add - tarih yanlıştır?

2 Cevap php

Yani onlar aidatlarını ödemek kez yeni bir üyenin son kullanma tarihini ayarlar MySQL basit bir sorgu var:

UPDATE members SET joined=CURDATE(), expires=DATE_ADD(CURDATE(), INTERVAL 1 YEAR), active='1' WHERE id=1000

alan dolduğunda o tarihten itibaren geçerli tarih katıldı alanına konur ve bir yıl - bu sorgu 200 + genelde doğru sonucu kez tükendi. Ancak, yaklaşık 10 durumlarda, tarih belirgin açıklama ile 00-00-0000 için kurulmuştur sona eriyor. Ben bir metin dosyasına emin sözdizimi doğru idi yapmak için her zaman sorgu yazmaya başladı ve ben bir şey cevapsız değil - ve ben yaptım - her sorgu için (değişen sadece kimliği ile) tam olarak bu sorgu, çalışmak olanlar ve olmayanları.

Burada düşünebilirsiniz tek şey MySQL'in date_add fonksiyonu ile bir sorun olmasıdır. Başkasının böyle bir şey yaşadı?

UPDATE: I should add that the joined field is correct with the current date in the cases where the expires date is incorrect.

  • Ben MySQL 5.0.81 kullanıyorum.
  • Hiçbir tetikleyiciler vardır.
  • Tablo MyISAM kullanıyor.

IMPORTANT UPDATE: I'm an idiot - when I say 11-30-1999 that's not actually what's in the database. I absent-mindedly wrote that, but in fact the database contains the value 00-00-0000 - 11-30-1999 is just how it gets rendered by PHP onto my page. Sorry about that, hopefully that will make this problem less difficult to figure out.

2 Cevap

Herhangi bir tetikleyici tanımlanmış sen var mı?

Çalıştırmak olabilir lütfen SHOW TRIGGERS?

Sadece bir düşünce .... bu "yanlış" bir tarih artık yıl tarihleri ​​olmak olmadı onlar .... 29 Şubat örneğin mi?

Bu önemli değil, ama bu bir hata olabilir.