在我的SQL存储过程中:
@StartDate as smalldatetime,
@EndDate as smalldatetime
在我的C#代码中:
StartDate = new DateTime(1901,01,01,00,00,00);
EndDate = new DateTime(2200,01,01,00,00,00);
var StartDate2 = StartDate.ToString("dd/MM/yyyy HH:mm:ss");
StartDate2 = DateTime.ParseExact(StartDate2, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy HH:mm:ss");
StartDate = Convert.ToDateTime(StartDate2);
var EndDate2 = EndDate.ToString("dd/MM/yyyy HH:mm:ss");
EndDate2 = DateTime.ParseExact(EndDate2, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture).ToString("dd/MM/yyyy HH:mm:ss");
EndDate = Convert.ToDateTime(EndDate2);
该列是db中的smalldatetime类型。我带着这个绕圈子走了!有什么正确的方法可以将我的日期解析为在db中查询的正确格式吗?
更新: 将代码更改为此并且工作正常。
SqlParameter parameter = daHoliday.SelectCommand.Parameters.Add("@StartDate", System.Data.SqlDbType.SmallDateTime);
SqlParameter parameter2 = daHoliday.SelectCommand.Parameters.Add("@EndDate", System.Data.SqlDbType.SmallDateTime);
parameter.Value = StartDate;
parameter2.Value = EndDate;
答案 0 :(得分:0)
不要将它们转换为字符串,只需通过命令参数将它们作为DateTime
类型对象传递。
DateTime
转换为字符串以匹配数据库表中的数据格式。如果表中的数据类型为DateTime
,则最好将.Net framework DateTime
对象作为参数传递给命令。