2012-03-17 11 views
0

私のMySQL DBテーブルには、StartDate(varchar型)と3つの別々の整数列があります。日月年。MySQL - 3つの列を特定の書式で1つにまとめる

私がしたいことは、日、月、年の値を組み合わせて、結果の値をdd/mm/yyの形式でStartDateフィールドに挿入することです(例:03/07/84)。

これはそれほど難しくありませんが、DayとMonth値の多くは1桁の長さなので、プレフィックスを0にする必要があります(たとえば、1は01、9は09、11は変更されません)。必要なStartDateフォーマットを満たすために注文してください。

その他の問題は[年]フィールドです。これは現在4桁の年を保持しているため、開始日のフォーマットに合わせて最初の2桁を削除する必要があります(たとえば、1984が84、2001が01になります)。

これを達成するために必要な手順は誰でも手助けできますか? 私はまず、日、月、年の列を作成し、それらをコピーしてStartDate列に '/'文字を追加する前に正しい書式で取得する必要があると思います。

ご協力いただきありがとうございます。

+0

なぜあなたはこれをやっていますか? 2つの場所にデータを持つことは悪い考えです。あなたのアプリケーションコードに、あなたが持っているデータを正しい形式に変換する関数を書く方が良いでしょう。また、MySQL DATE形式を使用しないでください。 –

+0

@MattGibson私は、2つの場所のデータを持つことが悪いことに同意します。そのため、StartDateをDay、Month、Year列から作成しているので、StartDateを終了するためにStartDateを削除します。 StartDateフィールドの内容がサイトのフロントエンドで使用される方法のため、MySQL DATE形式は使用しません。 – tcarnell

答えて

0

は、この文字列で検索してください:

UPDATE `my_super_datestable` SET startdate = 
    date_format(str_to_date(concat_ws(
          '/', `day`, `month`, `year`), '%e/%c/%Y'), '%d/%m/%y'); 
+0

それは素晴らしいです。私がやろうとしていたことが完璧に達成されました。多くのありがとう@mantigatos。 – tcarnell

関連する問題