0

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

我的存储过程是:

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
    )
4

2 回答 2

0

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

于 2013-09-27T08:20:37.730 回答
0

看看这个:How to generate a range of dates in SQL Server and this你需要一个数字表 如果你经常运行这个数字表,这将更容易和更有效。否则,您可以使用这些示例之类的系统表来获取可以加入的范围

于 2013-09-27T08:41:08.840 回答