SQL Server中的日期时间比较

本文关键字:时间 比较 日期 Server SQL | 更新日期: 2023-09-27 17:58:23

我想比较SQL Server中的DateTime。但我在表中使用的是Varchar数据类型。所以我在SQL中使用CONVERT

我的查询:

Select io.* from tblData as io INNER JOIN tblInterest as ui 
ON ui.SubCatId=io.SubCatId 
Where ui.UserId=@UserId 
AND (CONVERT(DATETIME,io.Start,103 <=CONVERT(DATETIME,@Start,103) 
AND CONVERT(DATETIME,io.END,103)>=CONVERT(DATETIME,@End,103))

现在,问题是,如果我直接启动查询,那么它会向我显示数据,但当它在C#中执行时,我会得到黑色的DataTable

写入从SqlCommand获得的DateTime和UserId后进行查询。

Select io.* from tblData as io INNER JOIN tblInterest as ui 
ON ui.SubCatId=io.SubCatId 
Where ui.UserId=1 
AND (CONVERT(DATETIME,io.Start,103)<=CONVERT(DATETIME,'15-04-2014 23:13:30',103) 
AND CONVERT(DATETIME,io.END,103)>=CONVERT(DATETIME,'15-04-2014 23:13:30',103))

问题出在哪里?

SQL Server中的日期时间比较

我想比较SQL Server中的DateTime。但我在表中使用的是Varchar数据类型。

错误就在这里。别这样。你不能有效地做到这一点,这是一个典型的初学者错误,你最好从根本上停止这种错误,这是处理日期时间的非标准方式。然后突然间,其他一切都变得非常容易。