0

日付値が現在の日付よりも大きい mysql タイムスタンプ挿入の問題に出くわしました。次のステップは次のとおりです。

CREATE TABLE foo(
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`test_time`TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`ID`)
); 

INSERT INTO foo(test_time) VALUES('2038-01-19 11:14:08'); // fail
INSERT INTO foo(test_time) VALUES('2038-01-19 11:14:07'); // ok
INSERT INTO foo(test_time) VALUES('2038-01-18 23:59:00'); // ok
INSERT INTO foo(test_time) VALUES('2039-01-01 00:00:00'); // fail

失敗は、test_time 値が 0000-00-00 00:00:00 であることを意味します 私のタイムゾーンは UTC+8 です 2038-01-19 11:14:07 が mysql サポートの最大タイムスタンプであるかどうかを知りたいです。この時?

4

1 に答える 1

4

日付のより高い値を格納するには、DATETIMEデータ型を使用する必要があります。

TIMESTAMPからの範囲があります'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC

DATETIMEからの範囲があります'1000-01-01 00:00:00' to '9999-12-31 23:59:59'

http://dev.mysql.com/doc/refman/5.5/en/datetime.html

@Joachim Isaksson が示唆するように: PHP & mySQL: Year 2038 Bug: What is it? それを解決する方法は?

于 2012-08-08T05:18:53.177 に答える