如何只将时间参数传递给SQL Server中的存储过程

时间:2015-10-01 10:57:33

标签: sql sql-server sql-server-2008

我有一个查询,用于计算start = 6am和end = 10pm之间的段。我想保留start和end变量以使用户能够指定任何内容,因此我使用两个时间参数变量创建了存储过程,但它不起作用。知道为什么以及如何解决它。

Create procedure spGetUptimeBetweenStartAndEnd
(start as time, end as time)
   Remaining query goes here

我试过

spGetUptimeBetweenStartAndEnd 6, 10 

spGetUptimeBetweenStartAndEnd 6am, 10pm 

但没有运气。

1 个答案:

答案 0 :(得分:2)

对于time数据类型的变量或参数,传递给下级客户端的默认字符串文字格式为:hh:mm:ss[.nnnnnnn]

因此,假设您的任何代码未更改默认时间字符串文字,如果存储过程spGetUptimeBetweenStartAndEnd使用time数据类型的参数,则必须以下列形式向其发送值:

spGetUptimeBetweenStartAndEnd '06:00:00.000000', '22:00:00.000000'