|date(varchar) |
|--------------|
|2016-02-16 |
| -------------|
|03-12-2015 |
|--------------|
|07-07-2007 |
|--------------|
|2016-03-14 |
日期以不同的格式存储,类型为varchar
. 如何在 MySQL 中使用单个查询更改所有格式?
格式为d/m/y
、d-m-y
和y/m/d
。
我需要将这些复制到日期格式的新列中y-m-d
将新列创建为 type
DATE
。然后运行 3 个查询,每个需要一个转换。当然,它们可以组合成一个查询,但何必呢?它只会使它更复杂并且可能会崩溃。
最后删除旧列并将新列重命名到位?
查询将类似于:
然后执行 a以
SELECT
查看是否有任何行仍然具有DEFAULT
;new_date
我明白您正在尝试转换为某些日期/时间数据类型。然后,您需要的只是查询中的 CASE 表达式。
这应该可以工作 - 假设这 3 个变体是唯一出现的变体,并且没有额外的前导或尾随空白字符。
不过,改进这个 case 表达式以包含其他变体应该相当容易: