首页 > 解决方案 > SQL Count Where on a specific date...但结果为 0

问题描述

嗨,这不是我第一次使用此查询:

SELECT COUNT(*) from dbo.SchDetail WHERE dbSchDate = '08-06-2020'

查询正在工作,但他每次都计数为 0。

但如果我做一个between "08-06-2020" and "07-06-2020".

我得到了正确的结果。

对于 mysql,两个查询都可以正常工作。

但不是在 MSSQL 上。

我不知道我做错了什么。

感谢帮助

标签: sqlsql-serverdatecountwhere-clause

解决方案


你得到0是因为该WHERE子句过滤掉了所有行。有多种原因;例如:

  • 桌子可能是空的。
  • dbSchDate可能是datetime带有时间组件的。
  • 该常数可能无法正确解释为日期/时间。
  • 表中的值可能不匹配。

我建议采用 YYYYMMDD 格式的正确日期格式:

WHERE dbSchDate = '20200806'

您还可以使用:

WHERE dbSchDate >= '20200806'
      dbSchDate < '20200807'

即使有时间组件,此版本也可以使用,如下所示:

WHERE CONVERT(DATE, dbSchDate) = '20200806'

      

推荐阅读