• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:date型フィールドへのデータ挿入がうまくいきません。 )

date型フィールドへのデータ挿入で問題が発生する場合の対処方法とは?

このQ&Aのポイント
  • date型フィールドへのデータ挿入がうまくいかない場合、PHPとMySQLのバージョンやフィールドの指定方法を確認する必要があります。
  • PHPでdate型のデータを挿入する際は、日付のフォーマットを「Y-m-d」にすることが重要です。
  • また、phpMyAdminを使用してデータを挿入する場合は、自動的に正しい日付のフォーマットに変換されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

実際にどういうコードを書いているのでしょうかね? MySQLでは、date型の列に対し、文字で'yyyy-mm-dd' や 'yyyy-m-d'などの形式で値を与えれば、自動的にキャストしてくれます。 phpでSQLの文字列を組み立てる時、 ."2010-1-1". なんてやってしまっていませんか? 「"」や「'」で囲んで文字定数にしないと、2010-1-1(=2008)というint型で引き算になっていると判断されてしまいます。

tojyo
質問者

お礼

おっしゃるとおりでした。 '2010-1-1'とすることで正常に挿入できました。 お恥ずかしい限りです・・・。

その他の回答 (1)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

既に #1さんが言ってる通りなので、蛇足です。 ○ 正しい書き方 inset into $Table ('aaaDate') value ('2010-01-01'); inset into $Table ('aaaDate') value ('2010-1-1'); ○間違った書き方 inset into $Table ('aaaDate') value (2010-01-01); ↑数値として扱われ、演算結果をDate型に入れようとしている。 更に、もう一つ気がついたのは、実は 何も渡していないっていうオチ。 レコードが作られただけでも、Date型のフィールドには '0000-00-00'と入ります。

関連するQ&A