我试图将作为参数传递的日期与asp.net中存储过程的日期与数据库中的日期进行比较。但不能产生所需的结果。
我的查询如下:
@date datetime
Select * from table
where (CONVERT(NVARCHAR,[date],112)=CONVERT(NVARCHAR,@date,112))
插入从asp.net作为参数传递的日期没有问题,sql server负责日期格式..
任何人请告诉我如何比较那些日期..
答案 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);
希望它会有所帮助