SQL Server中的DateTime比较

Jee*_*mar 0 c# sql sql-server datetime

我想DateTime在SQL Server中进行比较.但我Varchar在表中使用数据类型.所以我CONVERT在SQL中使用.

我的查询:

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))
Run Code Online (Sandbox Code Playgroud)

现在,问题是如果我直接触发查询然后它向我显示数据但是当它在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))
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

小智 5

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

就在这里是错误.不要那么做.你不能有效地做到这一点,这是一个典型的初学者错误,你最好在根本原因停止,这是处理日期时间的非标准方式.然后突然间一切都变得非常容易.