0

この照合の日時を使用して挿入ステートメントをフォーマットするにはどうすればよいですか...

現在:

string SQLst = "UPDATE [LASTUPDATE] SET last_update = '" + DateTime.Now.ToString("yyyy-MM-dd") + "'";

これはLatin1_General_CI_ASで機能しますが、別のサーバーで照合SQL_Latin1_General_CP1_CI_ASに設定されたサーバーで機能するにはこのステートメントが必要です

これは私が得るエラーです:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value
4

2 に答える 2

4

変換は一切行いません。代わりに、パラメータ化された SQL を使用して、値をパラメータとして設定します。SQL インジェクション攻撃やこのような変換の問題を回避し、コードをよりクリーンに保つために、すべてのパラメーターにパラメーター化されたSQL を使用する必要があります。

一般に、不必要な文字列変換は避けてください。ほとんどの場合、微妙なエラーの潜在的な原因となります。

于 2012-06-27T09:46:57.020 に答える
1

@Jon Skeetが言ったようにやれば素晴らしいと思いますが、できない場合はCONVERTを使用してください

string SQLst = "UPDATE [LASTUPDATE] SET last_update = CONVERT(datetime, '"+DateTime.Now.ToString("yyyy-MM-dd")+"', 120)
于 2012-06-27T09:48:13.870 に答える