mysql update删除某些行上的字段数据,而不是在运行此mysql语句时更新它们
UPDATE
tablename
SET
date = DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d")
我正在尝试更新日期格式从05/08/2013到2013-05-08,以便我可以搜索$ date和$ date之间的日期
答案 0 :(得分:0)
试试这个:
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')
答案 1 :(得分:0)
您应确保date
字段为真DATE
或DATETIME
数据类型。之后,
UPDATE tablename
SET `date` = STR_TO_DATE(old_date, '%d/%m/%Y')
然后,你可以在日期做所有正常的数学运算:加,减,比较,排序等。
答案 2 :(得分:0)
MySQL STR_TO_DATE()通过将字符串和特定格式字符串作为参数来返回日期时间值。
如果指定为字符串的日期或时间或日期时间值是非法的,则该函数返回NULL,因此首先检查select语句中的所有值,以了解它是否返回null
Select DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d") from tablename