2012-06-25 144 views
2

我所遇到其在各種隨機格式varchar列中輸入的日期MySQL數據庫如低於MySQL的轉換各種日期格式轉換成統一的一個

01/01/1977 
05-05-1980 
58 (age to be converted to date) 
1.2.1990 
02/02/87 
01-Mar-73 

如何轉換成一個統一的格式,這一點 - DD/MM/YYYY

而且當我嘗試爲varchar轉換成日期列與此數據

SELECT 
    CAST(date_column AS DATE) 
    FROM 
    table_name 

我不知道爲什麼它給我的日期值的所有空的resul牛逼

回答

2

我會使用正則表達式來檢查格式,然後在STR_TO_DATE中使用適當的說明符來獲得標準格式。也許有人可以幫助正則表達式?

僞代碼:

SELECT 
    CASE WHEN date REGEXP '[m-d-y]' 
      THEN STR_TO_DATE(date, %) 

說明符:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

+1

這裏是一個開始:http://www.sqlfiddle.com/#!2/93eb2/18 – mellamokb

+0

更新時間:HTTP:// WWW .sqlfiddle.com /#!2/93eb2/34。如果存在任何含糊不清的情況,顯然不能工作,即某些日期以m/d/y存儲,有些以d/m/y存儲。 – mellamokb

+0

優秀的兄弟..謝謝 – silverkid

0

的語法爲CAST()功能是:

CAST(character_string AS character_data_type CHARACTER SET charset_name) 

你查詢它以正確的方式?

相關問題