在TextBox中,用户以dd / MM / yyyy格式输入日期。我将此值发送到存储过程:
cmd.Parameters.AddWithValue("@myDate", Convert.ToDateTime(txtMyDate.Text));
存储过程参数的类型为SmallDateTime。我想以dd / MM / yyyy格式传递上述代码值。如何在上面的代码中指定格式以确保SQL Server以dd / MM / yyyy格式存储日期?
答案 0 :(得分:3)
你所描述的有点令人困惑:
如果存储过程的参数确实是SmallDataTime,那么它本身就没有格式。 txtMyDate.Text
似乎是一个字符串,因此有一个日期格式...你可以是本地化友好的并保持你的代码 - 至少在一个普通的桌面应用程序中它会考虑dateformat的系统设置。另一种选择是明确硬编码格式,以便用户输入必须采用这种特定格式......这可以通过使用DateTime.ParseExact ( txtMyDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture )
完成。
MSDN参考: