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