1

SQL Server 2008 R2 を使用しており、[データを次のようにスクリプト化] -> [列名を指定して挿入] を使用して、テーブルから SQL INSERT スクリプトにデータをエクスポートするオプションを選択しました。これにより、次のようなスクリプトが作成されました。

INSERT INTO [MyTable] ([Id],[InsertDateTime],[Firstname],[Email]) VALUES (1, '26/06/2012 2:02:25 p.m.', 'Robert', 'robert@test.com');
INSERT INTO [MyTable] ([Id],[InsertDateTime],[Firstname],[Email]) VALUES (2, '28/06/2012 4:17:21 a.m.', 'David', 'david@test.com');

この生成されたスクリプトを空のバージョンのテーブルですぐに実行しようとすると、次のエラーが発生します。

Conversion failed when converting date and/or time from character string.

2 つの質問:

  1. 日付/時刻文字列は、'dd/mm/yyyy h:mm:ss' の形式です。日付/時刻の文字列表現を変換する特定の形式を SQL サーバーに伝えるにはどうすればよいですか? スクリプトは約 5000 の INSERT 行を生成するので、妥当な場所で検索と置換を行うことができます...
  2. SQL Server が実行できないスクリプトを生成するのはなぜでしょうか?

ありがとう!

4

1 に答える 1

0

最初にset dateformatを使用して、適切な日付部分の順序を設定します。あなたの場合は「dmy」です。次に、すべてのステートメントで、すべての「am」を「AM」に、「pm」を「PM」に置き換えます。次のスクリプトは正常に動作します。

 set dateformat dmy

 INSERT INTO [MyTable] ([Id],[InsertDateTime],[Firstname],[Email]) 
   VALUES (1, '26/06/2012 2:02:25 PM', 'Robert', 'robert@test.com');
 INSERT INTO [MyTable] ([Id],[InsertDateTime],[Firstname],[Email]) 
     VALUES (2, '28/06/2012 4:17:21 AM', 'David', 'david@test.com');
于 2012-08-20T09:17:16.783 に答える