Mysql 使一列中的日期Mon等于yyyy-mm-dd hh:mm:ss

Mysql 使一列中的日期Mon等于yyyy-mm-dd hh:mm:ss,mysql,Mysql,在我的表中有两个字段created\u date和created\u month 创建日期:日期时间,例如2020-12-17 17:23:56 创建月份:VARCHAR,例如8月17日 现在的情况是,假设一条记录的创建日期为2020-12-17 17:23:56,创建月份为8月17日 我正在努力实现创建日期应该是这样的2020-08-17 17:23:56。创建月份的月份在创建日期中更新。对时间或日期不太讲究(17),但对年份很讲究。 如果我这么做的话 将我的表格集created\u da

在我的表中有两个字段
created\u date
created\u month

  • 创建日期:日期时间,例如
    2020-12-17 17:23:56
  • 创建月份:VARCHAR,例如8月17日
现在的情况是,假设一条记录的创建日期为2020-12-17 17:23:56,创建月份为8月17日

我正在努力实现创建日期应该是这样的
2020-08-17 17:23:56
。创建月份的月份在创建日期中更新。对时间或日期不太讲究(17),但对年份很讲究。 如果我这么做的话 将我的表格集created\u date=STR\u更新为\u date(created\u month,“%d%b”) 这是0000-08-12 00:00:00。年份是10000

created\u month
放入
created\u date
中,不更改年份


创建的
是否具有
%d-%b'
格式?
created\u month
是否严格在
created\u date
之前的一年内存在?大多数记录的created\u date和created\u month是相同的。例如创建日期2020-08-17 17:23:57,此记录的创建月份为8月17日。但有些记录的创建日期与括号中的创建月份不匹配。我试图在不改变年份的情况下,将created_month放入created_date。如果我正在将我的表格集created\u date=STR\u更新为\u date(created\u month,%d%b'),它将给出0000-08-12 00:00:00。这一年是000年,谢谢,但这一年给了我2000年的时间。现在也有一点变化。创建的月份的格式为DateMonth,例如8月7日而不是8月7日。此外,一些记录的格式为7月份而不是7月份。@Abhi Edit fiddle。添加源结构、数据和已编辑的查询。提供新的链接到小提琴(进入问题文本),它显示输出不正确。我会这样做,但它会处理问题。很少有记录没有完整的月份名称和前三个字母。我知道了。。我正在做这件事。。请稍等。
UPDATE my_table 
SET created_date = STR_TO_DATE(CONCAT(created_month, 
                                      '-', 
                                      YEAR(created_date), 
                                      ' ', 
                                      SUBSTRING_INDEX(created_date, ' ', -1)), 
                               '%d-%b-%Y %H:%i:%s');