萬無一失很可能是你的字符串轉換爲日期:
DECLARE @dateToFind datetime
SET @dateToFind = CONVERT(datetime, N'2011-04-02', 20)
SELECT * FROM [table] WHERE CONVERT(datetime, [datefield], 20) = @dateToFind
或者,如果你需要一個範圍:
DECLARE @startDate datetime, @endDate datetime
SELECT
@startDate = CONVERT(datetime, N'2011-04-01', 20),
@endDate = CONVERT(datetime, N'2011-04-30', 20)
SELECT * FROM [table] WHERE CONVERT(datetime, [datefield], 20) BETWEEN @startDate AND @endDate
或者你可以兩次轉換:
SELECT * FROM [table] WHERE YEAR(CONVERT(datetime, [datefield], 20)) = 2011 AND MONTH(CONVERT(datetime, [datefield], 20)) = 4
CONVERT中的數字20與您的日期格式相匹配。
當詢問SQL或數據庫問題時,請告訴我們*您正在使用哪個數據庫*。它讓我們這些回答問題的人更容易生活。 – APC 2011-04-02 11:18:15