我想要做的是从SQL的日期是在一定范围内,但其工作不正常,这里是我的查询得到的结果。TSQL日期时间比较
DECLARE @CurrDate DATETIME
SET @CurrDate = GETDATE()
SELECT dbo.ProductDetails.PartnerID
,dbo.ProductDetails.ProductID
,dbo.Products.ProductName
,StartDate
,EndDate
FROM dbo.ProductDetails
INNER JOIN dbo.Products
ON dbo.ProductDetails.ProductID = dbo.Products.ProductID
WHERE CONVERT(VARCHAR(10),StartDate,111) <= @CurrDate
AND CONVERT(VARCHAR(10),EndDate, 111) >= @CurrDate
但当Enddate = @CurrDate
行不显示,但如果我作出这样的日期仅仅一天更高它就会显示出来。我做错了什么?任何建议都可以,谢谢。
但这并没有考虑到'GetDate()'也提供了一个时间,对吧?你必须在那里做同样的转换... – codeling 2011-12-19 13:52:24
是的,我做了那里的转换,现在它正在工作。 谢谢! – johnnie 2011-12-19 13:56:40
如果使用SQL 2008,可以这样做:'Cast(StartDate as Date)' – 2013-04-05 22:32:12