【发布时间】:2022-08-23 05:04:23
【问题描述】:
我有一个带有两个 DATE 参数的存储过程,我希望它们具有默认值。但是,我也希望能够根据需要覆盖这些值。我正在使用 SSMS 18。这是我希望我的代码工作的方式。 (这不是一个工作示例)
CREATE PROCEDURE dbo.usp_stuff_and_things
-- Add the parameters for the stored procedure here
@begin_date DATE = (SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) )
,@end_date DATE = (SELECT DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1) )
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
这两个参数分别获取上个月的第一天(@begin_date)和上个月的最后一天(@end_date)。这些默认值大部分时间都有效,但有时我需要提取自定义日期范围。我希望能够根据需要将这样的值传递给存储的过程。
EXEC dbo.usp_stuff_and_things @begin_date = \'2021-01-01\', @end_date = \'2021-12-31\'
有没有办法做到这一点?
标签: sql sql-server stored-procedures