为什么mysql更新会删除字段数据?

时间:2013-05-09 08:27:00

标签: mysql

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

3 个答案:

答案 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字段为真DATEDATETIME数据类型。之后,

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