在sql server 2000中没有比较日期

时间:2015-03-23 08:04:35

标签: sql-server vb.net

我在sql server2000中有FrmDtToDt作为datetime列。我将这些列中的日期与两个datetimepicker进行比较,如下所示: SQL查询:

SqlCmd = New SqlCommand("SELECT DISTINCT AllwnsDedId FROM vwGetEmpCntrctWisePaymnt 
WHERE Type=1 AND Emp_ID='" & txtEmpID.Text & "' 
AND FrmDt>='" & dtp1dtp1.Value.Date & "' AND ToDt<='" & dtp2dtp1.Value.Date & "'", Sqlconn)

在查询分析器中,我尝试了:

FrmDt>='01/21/2015' AND ToDt<='01/21/2016'

它给了我正确的输出。但是我没有在Vb.net中获得输出?什么遗失?

1 个答案:

答案 0 :(得分:2)

为了使其可靠地工作,您需要使用正确的Date数据类型。将SQL更改为类似的内容

WHERE FrmDt>=@FrmDt AND ToDt<=@ToDt

然后在命令中添加2个参数对象,每个日期对应一个。你的代码最终应该是这样的;

SqlCmd = New SqlCommand("SELECT DISTINCT AllwnsDedId FROM vwGetEmpCntrctWisePaymnt 
WHERE Type=1 AND Emp_ID='" & txtEmpID.Text & "' 
AND FrmDt>=@FrmDt AND ToDt<=@ToDt", Sqlconn)

SqlCmd.Parameters.Add("@FrmDt", SqlDbType.DateTime).Value = dtp1dtp1.Value.Date
SqlCmd.Parameters.Add("@ToDt", SqlDbType.DateTime).Value = dtp2dtp1.Value.Date