Mos*_*026 3 sql stored-procedures
我使用此存储过程从特殊日期返回数据.我的QueueDate类型是datetime,但是当我想在Where子句中使用=时它返回0,我希望所有字段在一天内在字段中独立.
ALTER PROCEDURE [dbo].[SP_GET_QUEUESINFO_BY_DATE]
AS
BEGIN
declare @date2 datetime
set @date2= '2012-09-21'
select COUNT(QueueID) ,
sum(case when QueueNumIn != 0 THEN 1 else 0 end) as 'InQueue',
sum(case when QueueNumOut != 0 THEN 1 else 0 end) as 'OutQueue'
from Queue where QueueDate >= @date2 -- QueueDate = @date2
END
Run Code Online (Sandbox Code Playgroud)

您可以CAST使用列名将数据类型更改DATETIME为DATE(在版本2008+之前).尝试,
ALTER PROCEDURE [dbo].[SP_GET_QUEUESINFO_BY_DATE]
AS
BEGIN
declare @date2 datetime
set @date2= '2012-09-21'
select COUNT(QueueID) ,
sum(case when QueueNumIn != 0 THEN 1 else 0 end) as 'InQueue',
sum(case when QueueNumOut != 0 THEN 1 else 0 end) as 'OutQueue'
from Queue
where CAST(QueueDate as DATE) >= @date2 -- QueueDate = @date2
END
Run Code Online (Sandbox Code Playgroud)