(パラメータ化されたSQLに対する制限が追加される前に書かれた回答。)
Datetime の値はどのように指定すればよいですか?
パラメータ化された SQL では、他の値と同様です。
using (SqlCommand command = new SqlCommand("StoredProcName", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@Foo", SqlDbType.DateTime).Value =
new DateTime(2012, 12, 31, 16, 45, 0);
// Execute here
}
適切な文字列形式を見つけようとして混乱しないでください。できる限り文字列変換を避けてください。ハードコードされた文字列や数値をそのままの SQL ステートメントに含めて、それらが適切に明白である場合は、それほど嫌悪するわけではありませんが、日付/時刻の値にパラメーターを使用して、わずかな変換の問題を回避することは間違いありません。(そして、エスケープする必要がある可能性のある文字列にもパラメーターを使用します...)