我使用这个存储过程从特殊日期返回数据。我的 QueueDate 类型是 datetime ,但是当我想在 Where Clause 中使用 = 它返回 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
最佳答案
您可以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
关于sql - 比较日期而不考虑时间(MSSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534604/