如何转换日期字符串?
我在我的数据库中有一列,其日期传入格式如下: H:m:s,d.M.yyyy。 由于mysql无法将此格式作为日期解析,因此我不得不将此列的类型设置为字符串。 快速前进了几个月和几千条数据记录,现在我设法将传入数据格式更改为:yyyy-M-d H:m:s mysql可以将其解释为日期。如何转换日期字符串?
所以现在我想更改旧格式H:m:s,d.M.yyyy到4个不同表格中的新格式yyyy-M-d H:m:s。之后我这样做,我将只是改变字符串到日期的列的类型没有任何冲突
所以我试着为:
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%'
但没有工作,我也那么想这一点,但我想我synthax熄灭:
UPDATE 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%'
Doesa任何人有任何建议或替代解决方案?
- 将新的日期列添加到具有日期时间数据类型的表中。
- 更新与重新格式化的日期新列:
UPDATE myTable SET newdatecolumn=STR_TO_DATE(myColumn , '%H:%i:%s,%d.%M.%Y')
检查所有日期是由在新列空值检查成功转换。这就是为什么你应该有一个新的专栏,没有转换到位。
如果一切正常,然后删除带有文本日期的列并将新列重命名为旧名称。
当您在该表中插入/更新日期时,修改插入/更新代码以使用
str_to_date()
。
谢谢您花时间和实际帮助我解决问题,而不是嘲笑我缺乏知识:D 您的方法有意义,但由于以下原因,它不起作用'不正确的日期时间值:'8:0:0,25.12.2015'for function str_to_date' 我甚至尝试将您从'%H:%i:%s,%d。%M.%Y'写入的格式转换为'% H:%m:%s,%d。%M.%yyyy'仍然没有运气:( – Vrankela
这不是年份与模式不一致,而是时间部分和月份。 .mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format对于要使用的格式字符串,您没有时间上的前导0,可能甚至不是日期。可以看到你自己的数据,查看一下 – Shadow
再次非常感谢你的帮助。 e你:) 我的最终格式是:'%k:%i:%s,%e。%c。%Y' – Vrankela
见STR_TO_DATE - 但也许等几个月 – Strawberry
看看这个。可能是其按您的要求http://stackoverflow.com/questions/5201383/how-to-convert-a-string-to -date-in-mysql –
@用户试图选择它,我想要的是将其转换... – Vrankela