使用 SQL Server 2008,
我有一个程序如下:
SELECT
UserId, Name, Company, LanguageId, CodeRegisteredWith, TotalLoggedInDuration,
Region, IsAdmin,
IsRep, IsRetailer, IsTeamLeader, [dateregistered]
FROM
RoundupAcademy.dbo.UserProfile WITH(NOLOCK)
WHERE
(Convert(smalldatetime, DateRegistered, 120) >= Convert(smalldatetime, '2013-1-1', 120)
AND (Convert(smalldatetime, DateRegistered, 120) <= convert(smalldatetime, '2013-8-8', 120)))
这可以正常工作并显示日期之间的结果。
但是,在扩展此查询和更多条件时,如下所示:
SELECT
UserId, Name, Company, LanguageId, CodeRegisteredWith, TotalLoggedInDuration,
Region, IsAdmin, IsRep, IsRetailer, IsTeamLeader, [dateregistered]
FROM
RoundupAcademy.dbo.UserProfile WITH(NOLOCK)
WHERE
UserId is not null OR UserId not like ''
AND
(@LanguageID = 0 OR ([LanguageID] = @LanguageID ))
AND
((Convert(smalldatetime, DateRegistered, 120) >= Convert(smalldatetime, @datereg, 120)
AND (Convert(smalldatetime, DateRegistered, 120) <= convert(smalldatetime, @dateend, 120))))
似乎有任何日期显示。
不知道问题是什么,因为我的其他条件看起来不错。
有任何想法吗?