0

在我的 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);

该列是数据库中的 smalldatetime 类型。我要在这个圈子里转圈!将我的日期解析为正确格式以在数据库中查询的正确方法是什么?

更新:将代码更改为此并且工作正常。

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;
4

1 回答 1

0

不要将它们转换为字符串,只需DateTime通过命令参数将它们作为类型对象传递。

DateTime绝不应将其转换为字符串以匹配数据库表中的数据格式。如果表中的数据类型DateTime最好将 .Net 框架DateTime对象作为参数传递给命令。

于 2013-10-07T20:08:31.343 回答