0

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 之间的日期

4

3 回答 3

0

MySQL STR_TO_DATE() 通过将字符串和特定格式字符串作为参数返回一个日期时间值。

如果指定为字符串的日期或时间或日期时间值非法,则该函数返回 NULL,因此首先检查 select 语句中的所有值以了解其是否返回 null

 Select DATE_FORMAT(STR_TO_DATE(date, "%d/%m/%Y"), "%Y-%m-%d") from tablename
于 2013-05-09T08:37:40.357 回答
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')
于 2013-05-09T08:34:21.303 回答
0

您应该确保您的date字段为真DATEDATETIME数据类型。在那之后,

UPDATE tablename
SET `date` = STR_TO_DATE(old_date, '%d/%m/%Y')

然后,您将能够对日期进行所有正常的数学运算:加、减、比较、排序等。

于 2013-05-09T08:34:23.443 回答