mysql - 替换字符顺序 MySQL 字段
问题描述
我有一个 mysql 列“datepicker”,我一直以这种格式“m/d/Y”存储日期,现在我想将现有数据更改为“dmY”。是否有一个 UPDATE 命令可以快速查找所有匹配项,而无需为每个日期创建查询?
样本:
UPDATE `signup` SET `datepicker` = '18-12-2020' WHERE `datepicker` = '12/18/2020';
谢谢
解决方案
这确实是一个很好的举措。您正在将数据从非标准格式转换为 ISO8601 标准。如果将列的数据类型更改为DATE
. 但首先要做到这一点。
您可以使用MySQL 的日期处理功能来做您需要的事情。
从这个开始。它应该以您要离开的格式找到您的日期,并以 dbms 的规范日期格式显示它们。这是为了测试,因为 UPDATE 是破坏性的,你要确保它是正确的。
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
列中应该有正确的字符串格式。
推荐阅读
- android - 我有 3 种不同的约束布局,我无法在我的 android 应用程序中正确称量它们
- java - 巴西在 Java 上的夏令时新规则
- excel - 为什么我的代码将第二行作为标题而不是第一行
- python - pytest:在每次 looponfail 运行时写入时间戳
- c - 让 MSVC 接近 clang 的性能
- php - PHP合并子数组
- hive - Hive:使用分区在 hive 表中查找最新日期
- http - 浏览器如何处理 Cache-Control 标头中的 `no-cache="Set-Cookie"`
- php - 使用嵌套的 for/foreach 循环时文件意外结束
- javascript - 如何在 React 中使内联样式使用状态?