2016-10-05 59 views
2

我有字段名日期VARCHAR数据类型:重新排列int值YYYYMMDD使用MySQL

DATE 

09282016 
09272016 

我想将它安排:

DATE 
20160928 
20160927 

我如何能做到这一点的MySQL的?

+0

如果您的字段是整数,您将如何管理第一个零(前导零)。你从1到9个月储存两位数吗? – FLICKER

+0

对不起,数据类型是varchar –

回答

1

STR_TO_DATEDATE_FORMAT函数的帮助下,您可以实现此目的。

选择查询:

SELECT 
DATE_FORMAT(STR_TO_DATE(your_date_column,'%m%d%Y'),'%Y%m%d') 
FROM your_table; 

更新查询:

UPDATE 
your_table 
SET your_date_column = DATE_FORMAT(STR_TO_DATE(your_date_column,'%m%d%Y'),'%Y%m%d'); 

示范:

SET @str := '09282016'; 

SELECT 
DATE_FORMAT(STR_TO_DATE(@str,'%m%d%Y'),'%Y%m%d') AS output; 

Output 
20160928 

日期应存放在date数据类型。

+1

我这样做之前我问问题。唯一的问题是'%m%d%Y'中的y是小写字母。谢谢 –