从SQL Server数据库中提取dateTime

本文关键字:提取 dateTime 数据库 SQL Server | 更新日期: 2023-09-27 18:14:41

我试图比较SQL Server数据库中的endDate列到c#中称为highDate的存储变量。

DateTime highDate = new DateTime(2999, 1, 1);
SqlConnection myConnection = new SqlConnection("My connection string");
SqlCommand myCommand = new SqlCommand("My query including endDate_TS", myConnection);
myCommand.Connection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
      DateTime endDate = new DateTime(myReader["endDate_TS"]); //something is wrong here
}
if (endDate > highDate)
{
   //do something
}

如何正确格式化我创建的endDate变量以接受来自SQL Server数据库的endDate_TS ?(endDate_TS是一个SQL Server DATETIME数据类型)

从SQL Server数据库中提取dateTime

DateTime有几个构造函数,但没有一个接受对象。但是myReader["endDate_TS"]返回一个对象。如果它实际上是滴答数(如果_TS表示TimeSpan,则似乎是这样),则可以使用接受long:

的构造函数。
int indexOfEndDateTsColumn = myReader.GetOrdinal("endDate_TS");
DateTime endDate = new DateTime(myReader.GetInt64(indexOfEndDateTsColumn));  

然而,括号中的最后一句话表明它实际上是数据库中的datetime,那么您可以直接使用DataReader.GetDateTime:

DateTime endDate = myReader.GetDateTime(indexOfEndDateTsColumn);