14

クライアントの注文の日付を保持するMysqlデータベースがあります。

日付はphp関数によって生成されますdate('Y-m-d')。私のデータベースの2つのレコードには値があります'0000-00-00'。1つはオーストラリアのクライアントによって作成され、もう1つはイタリアのクライアントによって作成されました。他の5000件の注文は問題ありません。

私の質問は、どのようにしてそのような日付を生成することができるのかということです。それは個々のブラウザ設定を持つものでしょうか?

手伝ってくれてありがとう

4

5 に答える 5

16

私が見つけることができる唯一の理由は、クライアントが不適切な日付形式を入力したか、空の文字列を入力したことです。Mysqlの日付形式はyyyy-mm-ddであることを忘れないでください。

于 2013-01-08T12:53:00.663 に答える
10

同じ問題が発生していることに気付きました。$date変数を挿入するときに一重引用符を付けなかったため、0000-00-として表示されるnullまたは空白の値が挿入されていたことがわかりました。データベースの00。挿入ステートメントに$dateの代わりに'$date'を入れると、値は期待どおりに表示さまし

于 2015-06-06T21:47:35.740 に答える
8

これは、MySQLに値がまったくないなどの無効な値が渡されたことを意味します。コードをチェックして、その日付に対して常に有効な値があることを確認してください。

于 2013-01-08T12:51:02.377 に答える
2

この投稿のデフォルトの日付「0000-00-0000:00:00」またはnullを確認してください。それはあなたの質問に答えます。おそらく、クライアント側のコードの年、月、日の変数が初期化されていません。

編集 そうでない場合はrecently changed the Date-related column、データベースにからVARCHAR or TEXTまでがあるようですDATE

MySql changesこの場合のすべてのNULL値は'0000-00-00'。したがって、しばらく前に、日付がUIの必須フィールドではなく、NULLとして渡された場合は、上記のことが発生しています。

于 2013-01-08T12:56:27.400 に答える
0

純粋にプログラムされた機能または古い機能を使用している場合がありますmysql。例:CURDATE() + 5日付をDBに正しく挿入しますが、ユーザーがDBに挿入すると、2016-12-28が表示され0000-00-00ます。現在の日付が2016-12-20であれば、正常に動作します。絶対に正しい関数はですCURDATE() + INTERVAL 5 DAY。あなたは1月の初めに書いているので、多分あなたは同様の問題を抱えています。

于 2016-12-29T04:33:49.923 に答える