2015-11-25 96 views
0

我有以下格式的5000多個日期。將MM-DD-YYYY varchar轉換爲datetime

00-00-0000 

而列數據類型是varchar。如果我更改列類型,那麼我所有的行都被設置爲00-00-0000,而不是將字符串文字轉換爲日期。

是否有可能將所有50000行更改爲datetime和列數據類型?什麼是最好的方法來做到這一點?

+0

格式是什麼?日 - 月 - 年或月 - 日 - 年?沒有時間,這意味着從該字符串生成的所有日期時間將具有00:00時間 – ogres

+0

月 - 日 - 年是格式。嗯,也許我不需要在這種情況下的日期時間,但只有日期?我需要使用weekofyear函數。 – Bobdylllll

+0

它不應該改變數據,讓我知道你做什麼程序。該字段中的數據應該是格式爲yyyy-mm-dd –

回答

2

創建一個臨時DATE柱上,用STR_TO_DATE功能更新:

UPDATE mytable 
SET temp_date = STR_TO_DATE(varchar_date, '%m-%d-%Y') 

然後刪除VARCHAR日期欄和重命名臨時日期列。