~~2011/02/12追記~~ TIMESTAMP型からDATETIME型にALTERすることで下記は解消しました。 ~~2011/02/12追記終了~~
ひょっとしたらMysql利用者にとっては当たり前のことなのかもしれないですが、自分は今回初めて直面したので、健忘の為に書きます。
MysqlのTimeStamp型は特殊で、YYYYに指定できる範囲が1970~2039と制限されています。
参照:Mysql公式リファレンス http://dev.mysql.com/doc/refman/4.1/ja/datetime.html
~~一部抜粋~~ DATETIME、DATE、および TIMESTAMP 型の値はいずれも、同じ形式セットで指定することができるが、値の範囲については、すべての型で同じであるわけではない。たとえば、TIMESTAMP 型の値は、1970 より前にしたり、2037 より後にすることはできない。したがって、'1968-01-01' などの日付は、DATETIME 型や DATE 型の値としては正しいが、TIMESTAMP 型の値としては正しくないため、このようなオブジェクトに割り当てると、値は 0 に変換される。 ~~抜粋終了~~
よって、生年月日情報の保持をTimestamp型にすると1970年以前の方の情報は、正しく保持されず、2039年以降に生まれる方も同様に保持されないようです。
具体的にはEC-CUBEの案件で気づいたのですが、ECサイトや、年齢認証が必要なサイトの構築では致命的な設計ミスになります。
もし、ご存知でない方が入ればご注意を。