【发布时间】:2014-06-17 08:52:28
【问题描述】:
我有一个表格,其中有一列“dateRec”格式化为日期时间,还有一个 Select 过程从该表格中获取数据。
该过程有两个输入参数,rangeStart 和rangeEnd,它们可以格式化为 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
非常感谢您提供的任何帮助,迈克。
【问题讨论】:
-
这有什么问题?
-
正如@Nithesh 所说,这是否有错误,或者这只是代码审查?
-
因为参数是
datetime,如果您传递一个 NVARCHAR,它将在过程开始之前被结合到一个日期时间中。那么,基本上,您现有的代码有什么问题? -
@Mike 你没有正确使用变量,你需要添加一个@符号。请看下面我的回答。
-
谢谢 - 所以这实际上是正确的?我没想到我可以那样选择日期。
标签: sql sql-server date datetime stored-procedures