首页 > 解决方案 > 当列是 T-SQL 查询中的时间戳时,根据日期获取 COUNT?

问题描述

我正在尝试根据日期进行计数,但该列是时间戳。我想我需要在 FROM 语句之后放置 cast 函数,但不确定。

Select Count(X), Cast(Y as date)
From table
Where Y = '2019-04-01';

我已经尝试了上述查询的一系列衍生产品,我已经运行了一些查询,但仍然无法获得实际输出。我似乎在谷歌上找不到一个很好的例子,所以我认为这里有人可能遇到了这个问题。TO_CHAR并且TRUNK不支持。

当前代码:

SELECT COUNT([X]), CAST(Y AS date)
FROM table
WHERE Y = '04/01/2019'
GROUP BY Y ORDER BY Y;

运行,但不返回任何输出(我知道有结果)。


SELECT COUNT([email]), processed
FROM [AJM].[dbo].[EmailSend]
CAST(processed AS date)
WHERE processed = '04/01/2019'

按已处理订单按已处理分组;

错误:

“已处理”不是可识别的表提示选项。如果它打算作为表值函数或 CHANGETABLE 函数的参数,请确保您的数据库兼容模式设置为 90。

目标是在指定日期之前获得 X 或 Y 的计数。

标签: sql-server

解决方案


你需要类似下面的东西吗?

SELECT COUNT([email]), processed
FROM [AJM].[dbo].[EmailSend]
WHERE CAST(processed AS date) = '04/01/2019'

推荐阅读