获取日期小于今天的行数

时间:2019-02-04 09:57:36

标签: sql sql-server

我已经完成了以下操作,以获取日期小于今天的今天计数列表。我已经完成了以下代码:

select SUM(CASE WHEN (EXPIRYDAYE>= CONVERT(date, GETDATE())) > 1 
                then 1 
                else 0 
           end)
from bottles;

但是,我得到这个错误:

  

“>”附近的语法不正确。

请注意,我需要这样做。因此,请以这种方式对我的语法有所帮助。谢谢

3 个答案:

答案 0 :(得分:1)

您必须尝试以下操作

select SUM(CASE WHEN EXPIRYDAYE< CONVERT(date, GETDATE())  then 1 else 0 end)

在您的sql查询中,语句错误

 CASE WHEN (EXPIRYDAYE>= CONVERT(date, GETDATE())) > 1 -- here last >1 is illogical 

答案 1 :(得分:1)

尝试一下

SELECT 
    SUM(
        CASE WHEN EXPIRYDAYE< CAST(GETDATE() AS DATE)
            THEN 1 
        ELSE 0 END)

在1之前不需要>符号。

答案 2 :(得分:1)

以下简单查询应适用于您的情况。您不需要CASE WHEN

SELECT COUNT(*) TotalCount
FROM YOUR_TABLE WHERE EXPIRYDAYE < CAST(GETDATE() AS DATE)
  

请注意,我需要这样做。所以请帮我   进行计数的语法。

我不确定为什么要以更有效的查询来以特定方式进行查询。