将作为参数传递的asp.net日期与存储过程中的日期与数据库中的日期进行比较

时间:2011-05-27 04:54:47

标签: asp.net sql-server-2005 date parameters comparison

我试图将作为参数传递的日期与asp.net中存储过程的日期与数据库中的日期进行比较。但不能产生所需的结果。

我的查询如下:

         @date datetime

         Select * from table
         where (CONVERT(NVARCHAR,[date],112)=CONVERT(NVARCHAR,@date,112))

插入从asp.net作为参数传递的日期没有问题,sql server负责日期格式..

任何人请告诉我如何比较那些日期..

2 个答案:

答案 0 :(得分:2)

正确的方法是

@date datetime

Select * from table          
where [date] = @date

编辑:如果您只想比较SQL2005中的日期组件(不包括时间),请比较年,月和日。

Select * from table          
where DATEPART(YEAR, [date]) = DATEPART(YEAR, @date)
and DATEPART(MONTH, [date]) = DATEPART(MONTH, @date)
and DATEPART(DAY, [date]) = DATEPART(DAY, @date)

我总是喜欢避免字符串比较。

答案 1 :(得分:0)

@harun你可以把代码放在日期参数中如何传递日期你是否已将日期存储在DateTime类型中,以便在编写时

CMD.Parameters.AddWithValue("@date",aspDate.tostring("MM/dd/yyyy"`);

它只会将日期部分传递给parameter.i我假设您的日期变量是Datetime

在sql中你可以像下面的例子一样提取日期

select convert(varchar(10),@date,101);
希望它会有所帮助