0

I have a problem with conversion string to date. The thing is, I create the table, and I got database with a plenty of records, and I should load it to my table. I searched any solution but I found only with SELECT or CONVERT but singular record.

This is the error msg:

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

How I should fix it for many records (SQL Server)?

Thanks for helping me.

4

2 に答える 2

0

私があなたの質問を理解している場合、挿入ステートメントの 1 つまたはいくつかに問題があります。INSERTステートメントを変更できると仮定するとISDATE、以前のコメント投稿者が提案したように使用できます。

INSERT INTO table_name
VALUES('Lisiak','Anna',
    CASE WHEN ISDATE('1968-05')=1 THEN '1968-05' ELSE '1/1/1753' END,
    CASE WHEN ISDATE('1998-01-01')=1 THEN '1998-01-01' ELSE '1/1/1753' END);

SQL フィドルのデモ

あなたのフィドルの例では、日付フィールドが null ではないため、無効な日付に 1/1/1753 を使用しました - それに応じて変更してください。

INSERTなんらかの理由でステートメントを変更できない場合は、別のオプションとして、datetime の代わりに varchar を受け入れるようにテーブルを変更することもできます。次に、それに応じて変換して元に戻します。

UPDATE table_name
SET data_ur = CASE WHEN ISDATE(data_ur)=1 THEN data_Ur ELSE '1/1/1753' END;

ALTER TABLE table_name ALTER COLUMN data_ur DATE NOT NULL;

別のフィドル

于 2013-05-26T00:16:23.307 に答える