2011-05-27 74 views
0

傳遞給存儲過程的日期一個asp.net日期我試圖作爲參數傳遞的日期從asp.net與數據庫中的日期比較的存儲過程。但不能產生所需要的結果..比較作爲參數數據庫

我的查詢如下:

  @date datetime 

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

我沒有問題,插入從asp.net參數傳遞的日期時,SQL Server需要的護理日期格式..

中的任何一個,請告訴我,我怎麼能比這些日期..

回答

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) 

我總是比較喜歡避免字符串比較。

+0

@Kirk,我只是想比較一下日期部分(時間部分可能不同)。我的日期字段的類型是日期時間(sql server 2005沒有日期類型,我猜?)。 – Harun 2011-05-27 05:00:58

+1

@harun是SQL Server有日期時間,而不是日期而Mysql的有兩個用於不同的日期時間和日期 – Devjosh 2011-05-27 05:04:19

+1

@Devjosh - SQL 2008有日期,但不是SQL 2005 – 2011-05-27 05:06:05

0

@harun你可以把你怎麼樣傳遞日期參數的日期代碼你存儲在DateTime類型的日期,所以當你寫

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

它會通過只有日期部分parameter.i我aassuming您的日期變量是日期時間

的SQL你可以提取日期像下面的例子

select convert(varchar(10),@date,101); 

希望這將有助於