无论何时比较日期(MSSQL)

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)

在此输入图像描述

Joh*_*Woo 5

您可以CAST使用列名将数据类型更改DATETIMEDATE(在版本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)