2014-01-23 157 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不同,但如果遇到这种情况,请确保您实际上正在尝试上传日期对象。