我有一个mysql列"datepicker“,其中我一直以"m/d/Y”格式存储日期,现在我想将现有数据更改为"d-m-Y“。是否有UPDATE命令可以快速处理所有匹配,而不必为每个日期创建查询?
示例:
UPDATE `signup` SET `datepicker` = '18-12-2020' WHERE `datepicker` = '12/18/2020';谢谢
发布于 2021-02-02 05:04:14
这真的是一个很好的举动。您正在将数据从非标准格式转换为ISO8601标准。如果将列的数据类型更改为DATE,效果会更好。但首先要做这件事。
您可以使用MySQL's date processing capabilities来执行您需要的操作。
从这个开始。它应该以您要转移的格式找到您的日期,并以dbms的规范日期格式显示它们。这是为了测试,因为更新是破坏性的,并且您希望确保它是正确的。
SELECT DATE(STR_TO_DATE(datepicker, '%c/%d/%Y')) new_datepicker, datepicker
FROM signup
WHERE datepicker RLIKE '^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$';当你确定你在这里得到了你想要的东西时,你可以这样做。
UPDATE signup
SET datepicker = DATE(STR_TO_DATE(datepicker, '%c/%d/%Y'))
WHERE datepicker RLIKE '^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$';现在,您的datepicker列中应该有了正确的字符串格式。
https://stackoverflow.com/questions/65999675
复制相似问题