-2

在 SQL Server 2008 中,我有一个需要输入日期的存储过程。我想选择从该日期午夜开始到晚上 11:59 的所有行。

CREATE PROCEDURE MyProc
@InputDate DATETIME
AS
SELECT * FROM MyTable WHERE DateField >= @InputDate

所以我希望能够像这样调用这个过程:

EXEC MyProc @InputDate=CONVERT(DATETIME, '3/5/2013')

它应该返回日期在'3/5/2013 0:0:0' AND '3/5/2013 11:59:59'之间的所有行。输入日期应该忽略时间组件,只查看日期并附加它自己的时间组件(至少我认为它应该)

有人可以指出我正确的方向吗?

4

1 回答 1

1

您可以使用DATE精确到一天的数据类型。

CREATE PROCEDURE MyProc
@InputDate DATE
AS
SELECT * FROM MyTable WHERE CAST(DateField AS DATE) = @InputDate

EXEC MyProc @InputDate='2013-03-05'

有一个SQLFiddle

于 2013-03-07T20:06:48.947 回答