从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
数据类型)
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);