使用其他格式插入数据库日期

时间:2012-06-15 07:48:00

标签: c# asp.net sql

我有一个gridview和sqldatasource。

我正在尝试在数据库中插入新记录,而Date列类型为Date,默认格式为US,mm / dd / yyyy,我正在尝试插入另一种格式的日期。

  SqlDataSource2.InsertCommand = "Insert into test (Name,Date) VALUES (@Name,@CONVERT(Date,'@Date',104))";
        SqlDataSource2.InsertParameters.Add("Name", nameText);
        SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, date.Text);

我得到:字符串未被识别为有效的DateTime。

由于

2 个答案:

答案 0 :(得分:4)

数据库中格式不相关的日期类型(除非您将其存储为字符串)。

您可以先尝试使用System.DateTimeDateTime.ParseExact获取有效的DateTime.Parse对象。

然后,使用此值设置SqlParameter。

DateTime dateValue = DateTime.Parse(date.Text); // try to make this working first.
SqlDataSource2.InsertCommand= "Insert into test (Name,Date) VALUES (@Name,@Date)";
    SqlDataSource2.InsertParameters.Add("Name", nameText);
    SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, dateValue);

答案 1 :(得分:2)

首先,您应该使用DateTime对象而不是Date.Text,首先将文字转换为DateTime

其次,如果数据类型是SQLServer表中的数据时间,则不需要在插入时格式化日期时间。

"Insert into test (Name,Date) VALUES (@Name, @Date)";   

您应该在select

中检索数据时格式化日期时间