【问题标题】:How to insert date(y-m-d) into MySQL database?如何将日期(y-m-d)插入 MySQL 数据库?
【发布时间】:2011-03-29 07:57:45
【问题描述】:

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

例如:

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

【问题讨论】:

  • 2000-09-20 = 1971 这不是一个有效值 ;)

标签: php mysql date


【解决方案1】:

只需引用日期即可。

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

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

【讨论】:

    【解决方案2】:

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

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

    更多详情请见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2018-11-16
      • 2018-05-25
      相关资源
      最近更新 更多