我正在尝试基于日期进行计数,但该列是时间戳记。我想我需要将强制转换函数放在FROM语句之后,但不确定。
Select Count(X), Cast(Y as date)
From table
Where Y = '2019-04-01';
我尝试了上述查询的一堆衍生工具,我已经运行了一些查询,但仍然无法获得实际的输出。我似乎在Google上找不到很好的例子,所以我认为这里的某个人可能遇到了这个问题。不支持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的计数。
答案 0 :(得分:0)
您是否需要以下类似内容?
SELECT COUNT([email]), processed
FROM [AJM].[dbo].[EmailSend]
WHERE CAST(processed AS date) = '04/01/2019'
答案 1 :(得分:0)
如果您要比较日期和时间戳,则可能运气不佳。请尝试以下操作:
SELECT COUNT([X]), CAST(Y AS date)
FROM table
WHERE Y = CAST('2019-04-01' as TIMESTAMP)
GROUP BY Y ORDER BY Y;
通过投射右侧而不是左侧,您仍然可以利用索引功能。