まずdatetime型のフィールドの初期値が勝手に「0000-00-00 00:00:00」となっていること
確認ですが、レンタルサーバ側のテーブルの datetime型のフィールドについて、NULLを許可しており、default値がNULLになるように create していますか?
NULLは許可していません。createというのはcreate tableのことでしょうか。create table時にはdefault値は設定してないです。nullを許可してないのでdefault値はnullにもできないですね。
「初期値が勝手に「0000-00-00 00:00:00」となる」と書いたのはローカル環境だとdatetimeの初期値「設定なし」が可能だったからです。レンサバで設定なしにすると勝手に「0000-00-00 00:00:00」の値が入ります
#1のコメント:
createというのはcreate tableのことでしょうか。
はい、そうです。
「ブログデータベースの作成」の中で、created と modified は default NULL になっているので、こうした方がいいのかなと考えました。
ただ、「created と modified」では、updated のみ NULL にするような表記がなされていますね。
createdとmodifiedのフィールドの初期値をNULLにしてみましたが一緒で「0000-00-00 00:00:00」になります。
それから今気付いたのですがNOT NULLのときも初期値NULLのときも「modified」については更新時に更新時刻が入っていました。なので問題はデータInsert時の「created」だけでした。