如何将日期(y-m-d)插入MySQL数据库?

时间:2010-08-13 07:20:30

标签: php mysql date

我在MySQL中有一个类型为date的字段。当我尝试使用以下查询在PHP中插入此字段中的任何日期时,它会在该字段中存储0000-00-00。

例如:

UPDATE test SET dob=2000-09-20 WHERE id=3

2 个答案:

答案 0 :(得分:6)

请引用日期。

UPDATE test SET dob='2000-09-20' WHERE id=3

在您的查询中,... 2000-09-20 ...将被解释为数学表达式。结果是一个数字,1971年。在日期时间字段中,一个数字将被零填充为6,8,12或14位数字,因此1971将变为001971.这个数字然后被解释为YYMMDD格式,所以它意味着“00 00月19日71”,这是无效的。因此存储了特殊值0000-00-00

答案 1 :(得分:3)

通常,您可以使用'2000-09-20'作为要插入的值。你的系统如何区分你所拥有的和整数(非日期)值1971,这是你从2000减去9和20得到的?

UPDATE test SET dob = '2000-09-20' WHERE id = 3

有关详细信息,请参阅here