14

我有一个 Mysql 数据库,我在其中保存客户订单的日期。

日期由 php 函数生成date('Y-m-d')。我的数据库中有两条记录有值'0000-00-00'。一个是由澳大利亚的客户创建的,另一个是由意大利的客户创建的。其他5000个订单都可以。

我的问题是如何生成这样的日期?可能与个别浏览器设置有关吗?

感谢帮助

4

5 回答 5

16

我能找到的唯一原因是您的客户输入了不正确的日期格式,或者他输入了一个空字符串。请记住 Mysql 中的日期格式是 yyyy-mm-dd。

于 2013-01-08T12:53:00.663 回答
10

我注意到我遇到了同样的问题,结果只是我在插入 $date 变量时没有在我的 $date 变量周围加上单引号,因此它插入了一个显示为 0000-00- 的空值或空白值00 在数据库中。一旦我在我的插入语句中输入'$date'而不是$date ,该值就会按预期出现。

于 2015-06-06T21:47:35.740 回答
8

这意味着 MySQL 传递了一个无效值,其中根本没有值。检查您的代码以确保它始终具有该日期的有效值。

于 2013-01-08T12:51:02.377 回答
2

检查此帖子默认日期 '0000-00-00 00:00:00' 或 null。它会回答你的问题。客户端代码中的年、月和日变量可能尚未初始化。

编辑 如果不是这种情况,那么您似乎recently changed the Date-related column在数据库中从VARCHAR or TEXTto DATE

MySql changesNULL在这种情况下,所有值都为'0000-00-00'。因此,如果某个时间过去,日期不是 UI 上的必填字段,并且如果它作为 NULL 传递,那么上面的事情就发生了。

于 2013-01-08T12:56:27.400 回答
0

可能是您有纯粹的编程或过时的mysql功能。例如:CURDATE() + 5将在数据库中正确插入日期,但是如果用户在2016-12-28数据库中执行此操作,则会显示0000-00-00. 如果当前日期是 2016-12-20,它将正常工作。绝对正确的功能是CURDATE() + INTERVAL 5 DAY. 你写在一月初,所以也许你有类似的问题。

于 2016-12-29T04:33:49.923 回答