2

varchar 列にさまざまなランダムな形式で日付が入力されている mysql データベースに出くわしました。

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

これを 1 つの統一形式 (dd/mm/yyyy) に変換するにはどうすればよいですか?

また、このデータを使用してvarcharを日付列に変換しようとすると

SELECT
    CAST(date_column AS DATE)
    FROM
    table_name 

結果として、日付の値がすべて null になる理由がわかりません

4

2 に答える 2

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

于 2012-06-25T19:24:08.193 に答える
0

CAST()関数の構文は次のとおりです。

CAST(character_string AS character_data_type CHARACTER SET charset_name)

正しい方法でクエリを実行しましたか?

于 2012-06-25T19:20:30.100 に答える