在SQL Server 2008R2中,在兩個日期之間獲取數據不起作用。在日期範圍之間獲取行在SQL Server中不起作用
我使用以下代碼來從INVOICE
表,其中CREATED_DATE
是@startdate
和@enddate
,這是我發送到存儲過程的參數之間的行。
Select *
from INVOICES INV
where CONVERT(Varchar(10), INV.CREATED_DATE, 105)
BETWEEN CONVERT(VARCHAR(10), @startdate, 105)
AND CONVERT(VARCHAR(10), @enddate, 105)
它不能正常工作,推動我堅果..
我做錯了嗎?..
我不明白爲什麼要轉換的日期爲varchar爲查詢。你不能只保留它作爲日期嗎? – Kangkan
Iam這樣做是因爲在數據庫INV.CREATED_DATE字段中有數據類型datetime,所以以此格式'2011-12-13 11:12:37.000'返回數據並從我的應用程序文本框中接收日期並以此格式發送參數值' 2011-12-13' 。這是如何以更好的方式完成的......即在指定日期之間獲取日期。 – SST
如果您的查詢參數在varchar中,請將它們轉換爲datetime。 – Kangkan