Sql 如何从数据库中获取上月数据

Sql 如何从数据库中获取上月数据,sql,sql-server,Sql,Sql Server,我有一个存储用户记录的表 这包括两列应用日期、js id 现在我得计算一下本月申请工作的人数。类似于: SELECT COUNT(js_id), MONTH(applied_date) FROM table GROUP BY MONTH(applied_date) 比如: SELECT COUNT(js_id), MONTH(applied_date) FROM table GROUP BY MONTH(applied_date) 对于给定日期的特定月份 DECLARE @date SMAL

我有一个存储用户记录的表

这包括两列应用日期、js id

现在我得计算一下本月申请工作的人数。

类似于:

SELECT COUNT(js_id), MONTH(applied_date)
FROM table
GROUP BY MONTH(applied_date)
比如:

SELECT COUNT(js_id), MONTH(applied_date)
FROM table
GROUP BY MONTH(applied_date)

对于给定日期的特定月份

DECLARE @date SMALLDATETIME = '20120105'; -- for January, also could use CURRENT_TIMESTAMP
-- the above could also be a stored procedure parameter

SET @date = DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0);

SELECT COUNT(js_id) 
  FROM dbo.[table_name]
  WHERE applied_date >= @date
  AND applied_date < DATEADD(MONTH, 1, @date);

对于给定日期的特定月份

DECLARE @date SMALLDATETIME = '20120105'; -- for January, also could use CURRENT_TIMESTAMP
-- the above could also be a stored procedure parameter

SET @date = DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0);

SELECT COUNT(js_id) 
  FROM dbo.[table_name]
  WHERE applied_date >= @date
  AND applied_date < DATEADD(MONTH, 1, @date);

这不会考虑年份,所以我怀疑OP不想这样做,也不太可能在applied_date列上使用任何索引,如果它们存在的话。@AdaTheDev My bad,事实上它只考虑月份而不考虑年份这不会考虑年份,所以我怀疑这不是OP想要的,也不太可能在applied_date列上使用任何索引,如果它们存在的话。@AdaTheDev My bad,事实上,如果我想像使用DATEDIFF m、applied_date一样计算今天应用的js_id,它只会查看月份而不是年份,GETDATE然后是查询中应该更改的内容。从表中选择countjs\u id,其中DATEDIFF m,applied\u date,GETDATE=0您应该将第一个参数从m更改为d如果我想计算今天应用的js\u id,就像使用DATEDIFF m一样,applied\u date,GETDATE然后是查询中应该更改的内容。从表中选择countjs\u id,其中DATEDIFF m,applied_date,GETDATE=0您应该将第一个参数从m更改为d