- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:date型フィールドへのデータ挿入がうまくいきません。
)
date型フィールドへのデータ挿入で問題が発生する場合の対処方法とは?
このQ&Aのポイント
- date型フィールドへのデータ挿入がうまくいかない場合、PHPとMySQLのバージョンやフィールドの指定方法を確認する必要があります。
- PHPでdate型のデータを挿入する際は、日付のフォーマットを「Y-m-d」にすることが重要です。
- また、phpMyAdminを使用してデータを挿入する場合は、自動的に正しい日付のフォーマットに変換されます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実際にどういうコードを書いているのでしょうかね? MySQLでは、date型の列に対し、文字で'yyyy-mm-dd' や 'yyyy-m-d'などの形式で値を与えれば、自動的にキャストしてくれます。 phpでSQLの文字列を組み立てる時、 ."2010-1-1". なんてやってしまっていませんか? 「"」や「'」で囲んで文字定数にしないと、2010-1-1(=2008)というint型で引き算になっていると判断されてしまいます。
その他の回答 (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'と入ります。
お礼
おっしゃるとおりでした。 '2010-1-1'とすることで正常に挿入できました。 お恥ずかしい限りです・・・。