2011-12-29 20 views
0

データベースの列に日付がありますが、日付の形式が同じではありません。一部はmm-dd-yyyyで、一部はmm.dd.yyなどです。クエリを使用して同じタイプにフォーマットするにはどうすればよいですか?更新日の列と書式の日付が同じパターン

私は、SQL Serverを使用しています2008年

+4

**どのような**データ型**はその列ですか?日付はSQL Serverに文字列として格納されないため、関連する**形式**はありません。つまり**適切なデータ型( 'DATE'または' DATETIME')を使用します** –

+2

+1 @ marc_s - 書式設定は記憶域とは関係ありません。 – Oded

+0

カラムがvarcharですが、日付が入ります – kinkajou

答えて

1

私の推薦は次のようになります。

ALTER TABLE dbo.YourTable ADD NewDateColumn DATE 
  • 更新変換するためにあなたのテーブル:

    1. があなたのテーブルにタイプDATEの列を追加します。それらのvarchar値からDATE

      UPDATE dbo.YourTable 
      SET NewDateColumn = CAST(YourOldColumn AS DATE) 
      WHERE NewDateColumn IS NULL AND ISDATE(YourOldColumn) = 1 
      
    2. ドロップ、古いコラム:今から

      ALTER TABLE dbo.YourTable DROP COLUMN YourOldColumn 
      

    は - 排他的に新しいDATE列を使用します。

    SELECT 
        CONVERT(VARCHAR(20), GETDATE(), 101) 'US format', 
        CONVERT(VARCHAR(20), GETDATE(), 102) 'ANSI format', 
        CONVERT(VARCHAR(20), GETDATE(), 104) 'German format' 
    

    はあなたを与える:

    あなたがDATE列のことができます。どんな文字列の出力にそれをあなたのフォーマットが必要なことをしたら

    あなたはsupported in SQL Server using the CONVERT function

    である任意の文字列表現にそれをフォーマットすることができます

    US format ANSI format German format 
    12/29/2011 2011.12.29 29.12.2011 
    
  • 関連する問題