Sql 获取日期小于今天的行数
我已经做了以下工作,以获得今天的计数列表,日期少于今天。我已经完成了以下代码:Sql 获取日期小于今天的行数,sql,sql-server,Sql,Sql Server,我已经做了以下工作,以获得今天的计数列表,日期少于今天。我已经完成了以下代码: select SUM(CASE WHEN (EXPIRYDAYE>= CONVERT(date, GETDATE())) > 1 then 1 else 0 end) from bottles; 但是,我认为这是一个错误: “>”附近的语法不正确 注意,我需要这样做计数。所以请帮助我用这种方法计算语法。谢谢您必须
select SUM(CASE WHEN (EXPIRYDAYE>= CONVERT(date, GETDATE())) > 1
then 1
else 0
end)
from bottles;
但是,我认为这是一个错误:
“>”附近的语法不正确
注意,我需要这样做计数。所以请帮助我用这种方法计算语法。谢谢您必须像下面这样尝试
select SUM(CASE WHEN EXPIRYDAYE< CONVERT(date, GETDATE()) then 1 else 0 end)
试试这个
SELECT
SUM(
CASE WHEN EXPIRYDAYE< CAST(GETDATE() AS DATE)
THEN 1
ELSE 0 END)
选择
总数(
EXPIRYDAYE
您不需要在下面的1简单查询适用于您的情况之前使用>符号。在执行此操作时,您不需要使用
CASE
SELECT COUNT(*) TotalCount
FROM YOUR_TABLE WHERE EXPIRYDAYE < CAST(GETDATE() AS DATE)
选择COUNT(*)TotalCount
从EXPIRYDAYE
注意,我需要这样做计数。所以,请帮我做这件事
以这种方式进行计数的语法
我不知道您为什么要以特定的方式执行此操作,而可以使用更高效的查询。从tablename where dateWHEN
没有意义。(EXPIRYDAYE>=CONVERT(date,GETDATE())>1
是什么意思?这里有两个布尔运算符,但没有和/或运算符。SQL Server不支持同一表达式中的多个布尔运算符。例如,其中不允许使用Col1>Col2
。它必须写成WHERE Col1>Col2和Col2
。这是某个更大查询的一部分吗?您可能只需要从您的表中选择COUNT(*)AS CNT,其中CAST(EXPIRYDATE AS DATE)SELECT COUNT(*) TotalCount
FROM YOUR_TABLE WHERE EXPIRYDAYE < CAST(GETDATE() AS DATE)