2011-11-18 268 views
1

我有一些辦公室記錄。數據庫已經創建並充滿大量數據。我必須在其上創建搜索功能。但問題是數據庫有日期字段,它是以var char形式並以「DD-MM-YYYY」形式,例如:「18-11-2011」 我想以日期格式轉換日期列而不丟失此數據。我試着在測試桌上做所有事情,一切都變成了零。例如:0000-00-00MySQl日期格式更新日期格式不同的Varchar

可以做些什麼?

回答

3

要擴大flesk的回答添加新列

ALTER TABLE foo ADD newdate DATE; 

更新的表格來填補這一新的列(如flesk一樣)

UPDATE foo SET newdate=str_to_date(olddate, '%d-%m-%Y'); 

那麼你甚至可以測試轉換是否正確。

SELECT * FROM foo WHERE olddate <> DATE_FORMAT(newdate, '%d-%m-%Y'); 

然後您可以刪除舊列並重命名新列。或者保持原樣。

+0

非常感謝你的工作! – Chinmay