在SQL Server 2008中,我有一个存储过程,它接受输入日期。我想选择从该日期午夜开始到晚上11:59的所有行。
CREATE PROCEDURE MyProc
@InputDate DATETIME
AS
SELECT * FROM MyTable WHERE DateField >= @InputDate
所以我希望能够像这样调用这个proc类似的东西:
EXEC MyProc @InputDate=CONVERT(DATETIME, '3/5/2013')
它应该返回所有行,日期介于'3/5/2013 0:0:0' AND '3/5/2013 11:59:59'。输入日期应忽略时间组件,只需查看日期并附加自己的时间组件(至少我认为应该这样)
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您可以使用准确到一天的DATE
数据类型。
CREATE PROCEDURE MyProc
@InputDate DATE
AS
SELECT * FROM MyTable WHERE CAST(DateField AS DATE) = @InputDate
EXEC MyProc @InputDate='2013-03-05'