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 之间的日期
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 之间的日期
MySQL STR_TO_DATE() 通过将字符串和特定格式字符串作为参数返回一个日期时间值。
如果指定为字符串的日期或时间或日期时间值非法,则该函数返回 NULL,因此首先检查 select 语句中的所有值以了解其是否返回 null
Select DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d") from tablename
尝试这个:
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')
然后,您将能够对日期进行所有正常的数学运算:加、减、比较、排序等。