所以我在MySQL中有一个简单的查询,在他们支付会费后设置新成员的到期日期:
UPDATE members SET joined=CURDATE(), expires=DATE_ADD(CURDATE(), INTERVAL 1 YEAR), active='1' WHERE id=1000
此查询已运行200次以上,通常具有正确的结果 - 当前日期将放在已连接字段中,并且该日期将在到期字段中放置一年。但是,在大约10个实例中,到期日期已设置为00-00-0000,没有明显的解释。我每次都开始将查询写入文本文件,以确保语法正确并且我没有错过任何内容 - 我没有 - 这正是每个查询的查询(只有ID变化),那些工作,那些没有。
我能想到的唯一问题是MySQL的DATE_ADD函数一定存在问题。还有其他人经历过这样的事吗?
更新: 我应该补充说,在过期日期不正确的情况下,连接字段与当前日期是正确的。
重要更新: 我是个白痴 - 当我说11-30-1999时,实际上并不是数据库中的内容。我心不在焉地写道,但实际上数据库包含值00-00-0000 - 11-30-1999就是它如何通过PHP呈现在我的页面上。对此感到抱歉,希望这会让这个问题变得难以理解。
答案 0 :(得分:0)
只是一个想法......那些“错误”的日期并没有发生在闰年日期......他们是2月29日的例子吗?
这应该没关系,但它可能是一个错误。