-1

あるテーブルのレコードを別のテーブルにコピーする必要がありますが、その前に日付スタンプ列 (nvarchar) を datetime 形式に変換する必要があります。これは、日付が varchar 形式であるため、テーブルをクエリできないためです。varchar を日時形式に変換する方法は知っていますが、それは単一のレコード用です。列全体を日時形式に変換し、レコードを別のテーブルにコピーする簡単で迅速な方法を教えてください。たとえば、varchar 日付スタンプの形式は 2013 年 1 月 16 日です。

declare @dateString varchar(50)
set @dateString = 'wednesday, january 16, 2013'

declare @index int
set @index = charindex( ',', @dateString )
set @dateString = substring( @dateString, @index + 1, len(@dateString) - @index)

select cast(@dateString as datetime)

上記のコードは、私の形式の varchar を datetime に変換します

4

2 に答える 2

0

MYSQL ではなく、MS SQL Server を使用しているようです。

あなたがする必要があるのは、そこに関数ロジックを取り、部分文字列関数の @index を置き換えて、INSERT..SELECTのステートメントcharindex(',' columnname)の一部として配置することだけです。SELECT

INSERT ....
SELECT cast(
    substring( COLUMN
              , charindex( ',', COLUMN ) + 1
              , len(COLUMN) - charindex( ',', COLUMN )
             ) as datetime
           ) from XXX

完全な例は、この SQLFiddle で利用できます。

于 2013-03-28T16:17:58.107 に答える