2015-10-05 54 views
-5

MySQL表有2列 - STARTDATE日期和结束日期日期格式 - DD-MM-YYYY,以YYYY-MM-DD

他们举行日期的格式如下:22-01-2016

当我样机,我用了MediumText。

现在,我想切换到日期格式。 PHPMyAdmin中的默认日期格式为YYYY-MM-DD

如果将列切换为日期,我的数据将变成0000-00-00。

使用PHP或MySQL,如何在返回到PHPMyAdmin之前将数据重新格式化以将列切换为日期格式?

+0

您是否使用VARCHAR或DATE数据类型在数据库中存储'startdate'和'enddate'? – lad2025

+1

不要使用文本格式以任意格式存储日期.....首先在日期数据类型中存储日期;但是MySQL不能简单地让你将该列更改为日期,因为作为varchar的列的内容不是公认的日期格式 –

+0

当原型设计 - 需要快速和肮脏的东西时。现在,我需要优化应用程序。 –

回答

5

您可以使用字符串到日期的功能改变其结构之前更新列中的数据

UPDATE table SET dateColumn = STR_TO_DATE(dateColumn, '%d-%m-%Y'); 

它会将DD-MM-YYYY格式的日期转换为YYYY-MM-DD。之后,您可以将列的结构更改为DATE

+0

不错的答案Jerko – Drew

0

最简单,最可靠的方法是分裂的日期,并重新排列它们反过来:

$parts = explode('-', $olddate); 
$newdate = sprintf('%04d-%02d-%02d', $parts[2], $parts[1], $parts[0]); 
相关问题