【发布时间】:2014-04-01 09:19:26
【问题描述】:
我有一个表格,其中有一列 dateE,其格式为 nvarchar(20),并包含格式为 yyyy-mm-dd 的日期。
以下存储过程从 2014 年 4 月的 dateE 获取该表中的所有记录:
BEGIN
SET NOCOUNT ON;
SELECT cat,
COUNT(*) AS groupCount
FROM Log_PE
WHERE dateE LIKE '2014-04%'
GROUP BY cat
ORDER BY groupCount desc, cat
END
我怎样才能改变它,这样我就不必对日期进行硬编码,而是始终使用当前的年份和月份?
此外,我想使用相同的存储过程来获取前三个月(在本例中为 2014 年 1 月、2 月、3 月)的相同数据,以便最终获得与示例中一样的排名但对于上述每个月。
这里有人可以帮我吗?
提前非常感谢蒂姆。
【问题讨论】:
-
为什么要在 varchar 中保存日期?
标签: sql sql-server date stored-procedures group-by