存储过程更新表日期范围sql

时间:2013-09-27 08:03:18

标签: sql-server-2008 stored-procedures sql-insert

我创建了一个存储过程来将记录插入表中以供假期使用。目前我只能插入一个日期。我想做的是能够使用两者之间进入一整周或一个月等。

我的存储过程是:

ALTER procedure [dbo].[usp_UpdateVacationTable&Alert]
(
    @VacationDate DATETIME,
    @VacationType NVARCHAR(MAX),
    @VacationTypeID INT,
    @StaffCode NVARCHAR(4),
    @StaffName NVARCHAR(MAX),
    @Notes NVARCHAR(MAX),
    @FTE FLOAT,
    @CreatedBy NVARCHAR(MAX),
    @CreatedDate DATETIME
)
as
begin

    insert tblVacationRecords
    (
       VacationDate
      , VacationType
      , VacationTypeID
      , StaffCode
      , StaffName
      , Notes
      , FTE
      , CreatedBy
      , CreatedDate
    )
    values
    (
            @VacationDate,
            @VacationType,
            @VacationTypeID,
            @StaffCode,
            @StaffName,
            @Notes,
            @FTE,  
            @CreatedBy,
            @CreatedDate
    )

2 个答案:

答案 0 :(得分:0)

不确定如何在您的情况下使用BETWEEN。但我建议您查看表值参数:http://www.techrepublic.com/blog/the-enterprise-cloud/passing-table-valued-parameters-in-sql-server-2008/

答案 1 :(得分:0)

看看这个:How to generate a range of dates in SQL ServerYou require a numbers table这个更容易&如果您经常运行此数字表,则效率更高。否则,您可以使用这些示例中的系统表来获取可以加入的范围