2014-01-23 159 views
4

我在使用Mysql DATE格式時遇到了一個有趣的問題。 我有這個表:截斷Mysql日期警告數據

| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| file_path | varchar(255) | YES |  | NULL |    | 
| date_export | date   | YES |  | NULL |    | 

,當我使用最新功能更新一行:NOW(),日期被更新以這種格式:

'2014-01-23' 

但是,當我使用另一個日期格式,像手寫一個像:

update backup_conf_allied set date_export='2014-23-01' where file_path='IDF-952584-SW1' ; 

的date_export列變換成:

'0000-00-00' 

警告表告訴我說:

| Warning | 1265 | Data truncated for column 'date_export' at row 3628 | 

爲什麼?日期格式與NOW()函數相同。 謝謝。

回答

9

發佈查詢

update backup_conf_allied set `date_export='2014-23-01'` where file_path='IDF-952584-SW1' ; 

應然

update backup_conf_allied set `date_export='2014-01-23'` where file_path='IDF-952584-SW1' ; 

MySQL的支持日期格式爲 'YYYY-MM-DD',Year then Month then Date,所以你更新與錯誤的值"2014-23-01"日期列,只有12個月的一年,你使用的月23日是無效的,這是MySQL將其轉換爲ZERO DATE(0000-00-00)

+1

NOW()以正確格式返回當前時間戳爲「2014-01-23 15:48:50」 –

0

我有一個simil AR問題最近,我的問題是,我試圖上傳一個日期時間對象作爲日期對象。雖然這與Gui O不同,但如果遇到這種情況,請確保您實際上正在嘗試上傳日期對象。