将用户输入的数据转换为日期

时间:2014-03-05 15:50:05

标签: c# asp.net sql-server date

我正在尝试从表单上的文本框中将“date”类型的数据插入到数据库中。

我想确保用户输入的数据以'dd/mm/yyyy'格式存储在数据库中。我在数据库中有一个类型'date'的列,但是当我输入上面格式的值时,我得到一个异常(例如:不能隐式地将varchar转换为类型日期)。

请问如何将输入的日期转换为'dd / mm / yyyy'格式。我尝试使用CONVERT((varchar,getdate(),103) AS [DD/MM/YYYY]),但我无法弄清楚将它放在我的代码中的位置。我是c#和sql server的新手,请帮忙!!

2 个答案:

答案 0 :(得分:1)

最好不要在SQL中转换日期,只是将其作为日期传回,然后在C#中你可以根据需要构建它

myDate.ToString( “日/月/年”)

答案 1 :(得分:1)

使用parameterised queries

DateTime dt;
dt = DateTime.ParseExact(TextBox1.Text,
        "dd/MM/yyyy",CultureInfo.InvariantCulture);

SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "INSERT INTO [TABLENAME](DateCol) VALUES(@DateValue)";
SqlCommand cmd=new SqlCommand(query,con);
cmd.Parameters.AddWithValue("@DateValue",dt);
con.Open(); 
cmd.ExecuteNonQuery();
您的评论

编辑

  

我希望日期也以相同的'dd / MM / yyyy'格式显示   在数据库中

您无法控制底层数据库在数据库中显示或管理日期的方式,但如果您想从数据库中读取dd/MM/yyyy格式的日期,可以尝试以下方法:

SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "SELECT [DateCol] FROM TABLENAME]";
SqlCommand cmd=new SqlCommand(query,con);

con.Open(); 
SqlReader reader = cmd.ExecuteReader();
while(reader.Read())
{
   DateTime dt= Convert.ToDateTime(reader["DateCol"].ToString());
   string mydateString = dt.ToString("dd/MM/yyyy");
}
con.Close();