我有一个Mysql数据库,我保存客户订单的日期。
日期由php函数date('Y-m-d')
生成。我的数据库中的两条记录的值为'0000-00-00'
。一个是由澳大利亚的客户创建的,另一个是来自意大利的客户创建的。其他5000个订单都没问题。
我的问题是如何产生这样的日期?可能是个别浏览器设置吗?
谢谢你的帮助
答案 0 :(得分:13)
我能找到的唯一原因是您的客户输入了不正确的日期格式或者他输入了一个空字符串。 请记住,Mysql中的日期格式是yyyy-mm-dd。
答案 1 :(得分:7)
这意味着MySQL传递了一个无效的值,根本没有任何值。检查您的代码以确保它始终具有该日期的有效值。
答案 2 :(得分:5)
我注意到我遇到了同样的问题,事实证明,插入它时我没有在$ date变量周围放置单引号,因此它插入了一个null或空白值,显示为0000 -00-00在数据库中。在我的insert语句中输入'$ date'而不是 $ date 后,该值会按预期显示。
答案 3 :(得分:2)
查看此帖子default date '0000-00-00 00:00:00' or null。它会回答你的问题。可能,客户端代码中的年,月和日变量尚未初始化。
修改强>
如果情况并非如此,那么从recently changed the Date-related column
到VARCHAR or TEXT
的数据库中似乎有DATE
。
MySql changes
所有NULL
值都归'0000-00-00'
。所以,如果一段时间后,日期不是UI上的必填字段,如果它被传递为NULL,那么上面的事情已经发生了。
答案 4 :(得分:0)
可能是您拥有纯粹编程或过时的mysql
功能。例如:CURDATE() + 5
会在数据库中正确插入日期,但如果用户在2016-12-28
上执行此操作,则数据库将显示0000-00-00
。如果当前日期是2016-12-20,它将正常工作。绝对正确的函数是CURDATE() + INTERVAL 5 DAY
。
你是在1月初写的,所以也许你有类似的问题。