【发布时间】:2015-07-22 10:57:04
【问题描述】:
我正在编写一个存储过程。基本上我需要从用户那里获取年月信息并做一些事情。但我的问题是我没有检测到给定月份有多少天。让我举例说明;
用户按我说的给我年份和月份;
@year = 2015
@month = 07
所以我必须创建类似的行;
2015-07-01
2015-07-02
.....
2015-07-31
我的计划是将这些行一一添加到另一个临时表中。
我的 SP 的最后状态是;
ALTER PROCEDURE [dbo].[Usp_CreateStats]
(
@Year VARCHAR (40),
@Month VARCHAR (40)
)
AS
BEGIN
DECLARE @StartTime VARCHAR (10)
DECLARE @EndTime VARCHAR (10)
SET @StartTime = '00:00:00'
SET @EndTime = '23:59:59'
DECLARE @Peoples TABLE (name VARCHAR(50))
INSERT INTO @Peoples (name) select distinct name from USERINFO
DECLARE @Dates TABLE (date VARCHAR(50))
END
我希望解释正确。
【问题讨论】:
-
请提供样本数据和预期结果。
-
我的第一个想法是创建一个包含日期的计数表,并根据年份和月份加入该表。
-
为什么你的变量都是 VARCHAR 而不是 INT 或 DATETIME?
-
日历表。基于集合的真棒。这里只是创建一个示例脚本:gvee.co.uk/files/sql/dbo.numbers%20&%20dbo.calendar.sql
标签: sql sql-server sql-server-2008