【发布时间】:2013-03-17 06:44:30
【问题描述】:
我正在尝试创建一个在执行时具有日期参数的存储过程。我希望能够搜索在特定日期之间发货的订单。我有这个:
create procedure sp_orders_by_dates
@startdate smalldatetime,
@enddate smalldatetime
as
select OrderID,
o.CustomerID,
c.CompanyName as CustomerCompany,
s.ShipperID,
s.CompanyName as ShipperCompany,
ShippedDate
from Orders o join Customers c
on o.CustomerID = c.CustomerID join Shippers s
on s.ShipperID = o.ShipperID
where @startdate = ShippedDate,
@enddate = ShippedDate
order by ShippedDate
要执行,我必须这样做:
EXEC sp_orders_by_dates '1991-07-01', '1991-08-31'
我知道这部分出了什么问题,但我就是不知道如何在这里制作“介于”声明:
where @startdate = ShippedDate,
@enddate = ShippedDate
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀!
标签: date stored-procedures parameters