C# 如何在参数化查询中将字符串作为日期时间值传递
我有一个选择查询。它传递一个字符串作为日期时间,如下所示C# 如何在参数化查询中将字符串作为日期时间值传递,c#,sql,asp.net,datetime,C#,Sql,Asp.net,Datetime,我有一个选择查询。它传递一个字符串作为日期时间,如下所示 string SelectedDate = "16-04-2017"; string query1 = "SELECT * FROM test_details where selected_date <= @init "; using (SqlCommand command = new SqlCommand(query1, con)) { command.Parameters.Add("@init", SqlDbType
string SelectedDate = "16-04-2017";
string query1 = "SELECT * FROM test_details where selected_date <= @init ";
using (SqlCommand command = new SqlCommand(query1, con))
{
command.Parameters.Add("@init", SqlDbType.DateTime).Value = Convert.ToDateTime(SelectedStartDate);
}
问题是如何将
SelectedDate
转换为DateTime对象。Convert.ToDateTime()
无法解析给定的日期,而且您在ParseExact
中给出了错误的格式。因此,最好尝试以下方法:
DateTime dtValue = DateTime.ParseExact(SelectedDate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
command.Parameters.Add("@init", SqlDbType.DateTime).Value = dtValue;
尝试使用DateTime.Parse(string)而不是DateTime.ParseExactYou代码在日期中有破折号,而您的解析有正斜杠:“16-04-2017”和“mm/dd/yyyy”
DateTime dtValue = DateTime.ParseExact(SelectedDate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
command.Parameters.Add("@init", SqlDbType.DateTime).Value = dtValue;