MySQL的更新将删除一些行现场数据,而不是对其进行更新当我运行这个MySQL声明为什么mysql更新会清除字段数据?
UPDATE
tablename
SET
date = DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d")
我试图更新日期格式从2013年5月8日至2013年5月8日,使它所以我可以搜索其中$日期和$日期
MySQL的更新将删除一些行现场数据,而不是对其进行更新当我运行这个MySQL声明为什么mysql更新会清除字段数据?
UPDATE
tablename
SET
date = DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d")
我试图更新日期格式从2013年5月8日至2013年5月8日,使它所以我可以搜索其中$日期和$日期
之间的日期试试这个:
UPDATE tablename SET `date` = STR_TO_DATE(`date`, '%d/%m/%Y')
,然后更改列的数据类型这样
ALTER TABLE tablename CHANGE COLUMN `date` `date` DATE
或可替代
update tablename SET date = DATE_FORMAT(STR_TO_DATE(date,'%d/%m/%y'),'%y-%m-%d')
你应该确保你的date
场是真实DATE
或DATETIME
数据类型。在此之后,
UPDATE tablename
SET `date` = STR_TO_DATE(old_date, '%d/%m/%Y')
然后,你就能够做到的日期一切正常算术:加,减,比较,排序等
MySQL的STR_TO_DATE()采取一个字符串返回datetime值和一个特定的格式字符串作为参数。
如果指定为字符串的日期或时间或日期时间值是非法的,该函数返回NULL所以您在SELECT语句中所有的价值首先要知道,如果它的返回null
Select DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d") from tablename
什么是列'的数据类型日期'和它将删除_before_更新的字段中的值? – 2013-05-09 08:34:18