添加Where子句仅选择特定日期范围内的记录

时间:2014-06-17 08:52:28

标签: sql sql-server date datetime stored-procedures

我有一个表格,其列为“dateRec”,格式为datetime,而Select程序则从此表中获取数据。 该过程有两个输入参数rangeStartrangeEnd,它们可以格式化为datetime或nvarchar(这里无论什么都有意义)。

我怎样才能实现我只选择dateRec介于rangeStart和rangeEnd之间的记录?

我的程序(缩短版) - 只是为了证明我在寻找什么:

ALTER PROCEDURE [dbo].[FetchRequests]
    @rangeStart datetime,
    @rangeEnd datetime
AS
BEGIN
    SET NOCOUNT ON;

    SELECT      logID,
                flag,
                reviewer,
                dateRec
    FROM        LogRequests
    WHERE       dateRec >= rangeStart
    AND         dateRec <= rangeEnd
    FOR XML PATH('requests'), ELEMENTS, TYPE, ROOT('ranks')
END

非常感谢Mike的任何帮助。

1 个答案:

答案 0 :(得分:3)

您可以使用关键字BETWEEN:

ALTER PROCEDURE [dbo].[FetchRequests]
    @rangeStart datetime,
    @rangeEnd datetime
AS
BEGIN
    SET NOCOUNT ON;

    SELECT      logID,
                flag,
                reviewer,
                dateRec
    FROM        LogRequests
    WHERE       dateRec BETWEEN @rangeStart AND @rangeEnd
    FOR XML PATH('requests'), ELEMENTS, TYPE, ROOT('ranks')
END