Mysql日期警告数据被截断

Gui*_*i O 6 mysql format warnings date

我对Mysql DATE格式有一个有趣的问题.我有这张桌子:

| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| file_path   | varchar(255) | YES  |     | NULL    |                |
| date_export | date         | YES  |     | NULL    |                |
Run Code Online (Sandbox Code Playgroud)

当我使用日期函数更新行时:NOW(),日期将使用以下格式更新:

'2014-01-23'
Run Code Online (Sandbox Code Playgroud)

但是当我使用其他日期格式时,就像手写的一样:

update backup_conf_allied set date_export='2014-23-01' where file_path='IDF-952584-SW1' ;
Run Code Online (Sandbox Code Playgroud)

date_export列转换为:

'0000-00-00'
Run Code Online (Sandbox Code Playgroud)

警告表告诉我:

| Warning | 1265 | Data truncated for column 'date_export' at row 3628 |
Run Code Online (Sandbox Code Playgroud)

为什么?日期格式与NOW()函数相同.谢谢.

Abd*_*naf 10

发表查询

update backup_conf_allied set `date_export='2014-23-01'` where file_path='IDF-952584-SW1' ;
Run Code Online (Sandbox Code Playgroud)

应该是什么

update backup_conf_allied set `date_export='2014-01-23'` where file_path='IDF-952584-SW1' ;
Run Code Online (Sandbox Code Playgroud)

MySQL支持DATE格式为'YYYY-MM-DD',Year then Month then Date所以你要更新一个错误值的Date列,"2014-23-01"一年只有12个月,你使用的是23月无效的MySQL将它转换为ZERO DATE( 0000-00-00)