从任意日期转换为单一日期格式

kq0g1dla  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(406)

我被要求将数据从一个表迁移到另一个表。旧数据包括一系列日期,这些日期是以用户当时想使用的格式输入的,新格式要求在mm/yyyy中独立于date和to date字段。
所以有些日期是单一日期,比如dd.mm.yyyy或dd/mm/yy或dd-yyyy或yyyy或其他任何日期。有些日期是两个日期,例如dd.mm.yyy-dd/yyy或dd/mm/yy--dd/mm/yyyy。所以只是一团糟。只有几百行,但如果可以避免的话,我不想手动修改它们。
谷歌的大部分搜索结果都是用来将一种格式转换成另一种格式的,我怎样才能从一堆格式转换成一种格式呢?

ql3eal8s

ql3eal8s1#

使用一个表达式来包含所有的组合是很困难的,所以只需逐个执行模式:

UPDATE olddata,newdata
SET newdata.date=STR_TO_DATE(olddate.date, "%d.%m.%Y")
WHERE olddata.id=newdata.id
  AND olddata.date REGEXP '[:digit:]{1,2}\.[:digit:]{1,2}.[:digit:]{4}'
  AND newdata.date IS NULL

对每个日期格式执行多次,并在str\u to\u date中使用正确的表达式。在执行更新之前,请尝试选择正确的调节表达式。
最终你会有足够的记录手动编辑

相关问题