如何转换日期字符串?

时间:2016-02-12 09:17:25

标签: mysql date

我的数据库中有一个列,其中包含以下格式传入的日期: H:M:S,D.M.YYYY。 因为mysql无法将此格式解析为日期,所以我不得不将此列的类型设置为字符串。 快进几个月和几千条数据记录我现在设法将传入的数据格式更改为:yyyy-M-d H:m:s mysql可以将其解释为日期。

所以现在我想把旧的格式H:m:s,d.M.yyyy更改为新的yyyy-M-d H:m:s,在4个不同的表中,在多个thaus和记录上。在我这样做之后,我将只更改字符串列的类型到日期而没有任何冲突

所以我尝试的是:

UPDATE myTable
SET myColumn = REPLACE(myColumn , 'H:m:s,d.M.yyyy', 'yyyy-M-d H:m:s')
WHERE myColumn LIKE '%H:m:s,d.M.yyyy%'

但那不起作用,我也试过了,但我认为我的合成器已经关闭了:

更新myTable

SET myColumn = REPLACE(STR_TO_DATE(myColumn , 'H:m:s,d.M.yyyy', 'yyyy-M-d H:m:s'))
WHERE myColumn LIKE '%H:m:s,d.M.yyyy%'

是否有人有任何建议或替代解决方案?

1 个答案:

答案 0 :(得分:1)

  1. 向您的表中添加一个新的日期列,该日期列具有日期时间数据类型。
  2. 使用重新格式化的日期更新新列:
  3. UPDATE myTable SET newdatecolumn=STR_TO_DATE(myColumn , '%H:%i:%s,%d.%M.%Y')

    1. 通过检查新列中的空值来检查是否所有日期都已成功转换。这就是为什么你应该有一个新列而不进行转换。

    2. 如果一切正常,则删除包含文本日期的列,并将新列重命名为旧列。

    3. 修改插入/更新代码,以便在该表中插入/更新日期时使用str_to_date()