将一个MySQL列的值复制到另一个,但格式化

时间:2017-02-09 18:41:21

标签: mysql date copy

我已将DATE列添加到表中,但现在需要使用另一列中的值填充该DATE列 - 除了原始列是INT。 INT列是mmddyyyy。有没有办法使用

进行复制和格式化
UPDATE `table` SET int_column = date_column

1 个答案:

答案 0 :(得分:1)

尝试使用str_to_date和lpad函数:

UPDATE `table` SET date_column = str_to_date(lpad(int_column, 8, 0),'%m%d%Y')

为什么使用lpad(int_column, 8, 0) - 当日期是02012017时,直接转换为char会将其转换为2012017,str_to_date函数将返回null。 Lpad pad需要0来使长度为8,因此输出02012017,str_to_date函数将正确转换。