我手動(GASP!)在命令行輸入MySQL命令,並且我收到了一個警告,我甚至不能理解。 (並且在任何人說什麼之前,是的,我知道:1.使用命令行界面不是最好的方法; 2.我的表不被命名爲「TABLE_NAME」,我的列不被命名爲「DateColumn」,並且我的RecordID值不是真的是「1234」; 3.也許我列的類型應該是TIMESTAMP,但現在,它不動的....)對於有效的DateTime值奇怪的MySQL警告1264
試圖在2到輸入的日期「2012年7月26日的值。 :27 PM(GMT)」,我鍵控:
mysql> update TABLE_NAME set DateColumn="2012-07-26 14:27:00" where RecordID="1234";
我接收:
Query OK, 1 row affected, 1 warning (0.11 sec)
Rows matched: 1 Changed: 1 Warnings: 1
所以,我鍵入:
mysql> show warnings;
+---------+------+-----------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------+
| Warning | 1264 | Out of range value for column 'DateColumn' at row 1 |
+---------+------+-----------------------------------------------------+
奇怪,我想。所以,我檢查表首先要確認的列(字段)類型:
mysql> describe TABLE_NAME;
+------------+----------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
| DateColumn | datetime | YES | | NULL | |
+------------+----------+------+-----+-------------------+-------+
但值不會得到正確寫入到數據庫中,而不是被截斷,據我所知:
mysql> select * from TABLE_NAME where RecordID="1234";
+-----------------------------------------------+
| RecordID | Date_Column | BlahBlahBlah |
+----------+---------------------+--------------+
| 1234 | 2012-07-26 14:27:00 | something.. |
+----------+---------------------+--------------+
我已經搜索StackOverflow.com獲取解決方案。我已經使用Google進行了解釋。我已經在http://dev.mysql.com/doc/refman/5.5/en/datetime.html讀了,它說:
MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
我甚至有輕微的懷疑,它有什麼做的日期或時間,我正在作出的條目;所以我將聲明數據庫所在的服務器位於太平洋夏令時(格林威治標準時間-8,現在格林尼治標準時間GMT-7除外);我從EDT上的客戶端登錄(SSH)(這應該不重要);我將所有的Date_Column值存儲爲GMT。在我輸入價值「2012-07-26 14:27:00」時,所有三個日期在2012年7月30日之後都很好。不是說它應該重要 - 我應該能夠進入未來日期沒有得到一個錯誤 - 但認爲它可能有助於你知道。所以 -
爲什麼,OH WHY是「2012-07-26 14:27:00」超出範圍的值?
我的MySQL客戶端API版本是5.1.49。
這是我第一次發佈在StackOverflow上。預先感謝您的建議。
「支持的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。」所以我沒有看到你的價值有問題... – Jocelyn 2012-07-31 00:14:03
你運行的MySQL版本是什麼? – Throdne 2012-07-31 02:56:56
@Throdne mysql> select version(); 版本() 5.1.56-log – user1564318 2012-08-01 01:22:29