sql - 尝试在存储过程中设置默认参数值,但在 CONVERT 上出现错误
问题描述
希望在存储过程中设置默认值但遇到错误,CONVERT
似乎不存在。CONVERT
在正文中工作,但不在存储过程的 params 部分中。如何将参数设置@StartDate
为过去 24 个月的默认值?
CREATE PROCEDURE [dbo].[MyStoredProc]
@Id INT = NULL,
@startDate DATETIME = CONVERT(DATE, DATEADD(MONTH, -1 * 24, GETDATE())), -- last 24 months
@endDate DATETIME = CONVERT(DATE, GETDATE())
AS
BEGIN
SELECT @startDate;
END
GO
解决方案
这样可行!
CREATE procedure [dbo].[MyStoredProc]
@Id int = null
,@startDate datetime = null
,@endDate datetime = null
as
begin
SET @startDate = ISNULL(@startDate, CONVERT(DATE, DATEADD(MONTH, -1*24, GETDATE())));
select @startDate;
END
GO
推荐阅读
- python - Xarray Pandas dayofyear 产生不正确的闰年尺寸
- javascript - 如何从函数返回 javascript 中的数组?
- active-directory - 在 .Net Core 2.x MVC 应用程序中配置 Windows AD 身份验证
- opencart - (Opencart)自定义模块位置未保存在布局中的原因可能是什么?
- pandas - 在多列分组后的目标计数
- c# - AWS .NET Core 单元测试加载非默认配置文件
- php - 如何发送图片地址和id
- c - mmap 库函数可以在 C 和汇编程序中使用吗?
- matlab - matlab中的for循环只迭代128次
- npm - 在 node_modules 中顽固地重新出现 .bin 文件