使用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))))似乎任何约会节目。
不知道是什么问题,因为我的其他条件看起来很好。
有什么想法吗?
发布于 2013-08-13 10:08:09
替换
WHERE UserId is not null OR UserId not like '' 使用
WHERE (UserId is not null OR UserId not like '')否则,您将得到UserId is not null、或等其他条件为真的所有记录。
发布于 2013-08-13 10:15:42
查询应该如下所示
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))))https://stackoverflow.com/questions/18206229
复制相似问题