如果包含日期值的参数为null,如何将默认空值设置为表中的日期字段?
答案 0 :(得分:2)
确保你真的传入NULL,我认为你传入一个空字符串。如果传入空字符串,则会得到您引用的1900-01-01 00:00:00.000
值。 Null将为null,不会更改为日期。
试试这个测试代码:
declare @x datetime
select 'is null', @x
set @x=''
select 'is empty string', @x
输出:
------- -----------------------
is null NULL
(1 row(s) affected)
--------------- -----------------------
is empty string 1900-01-01 00:00:00.000
(1 row(s) affected)
答案 1 :(得分:0)
您是指在传入的日期参数为NULL时如何在存储过程中设置特定的默认值?
将您的日期参数标记为:
@DOB DATETIME = '01 / 01/1900'
如果将@DOB传递为NULL,则@DOB参数将插入'01 / 01/1900'。
答案 2 :(得分:0)
尝试:
coalesce(param, getdate())
存储过程中的或在列上定义默认值
ALTER TABLE dbo.Mitarbeiter ADD CONSTRAINT
DF_Mitarbeiter_Geburtstag DEFAULT getdate() FOR Geburtstag
答案 3 :(得分:0)
我不是sql server 2000的专家。
我有一个链接希望这会对你有所帮助:)。