2015-10-05 24 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]); 
相關問題