解決できない奇妙なバグがあります (1 行の関数で)。
このコードは機能します:
DECLARE @TestDate datetime = '2013-05-01 23:15:11'
select IsNull(convert(varchar(max), @TestDate, 120), 'null') as 'test1'
表示:2013-05-01 23:15:11
CREATE FUNCTION [dbo].[DateOrNullToChar] (@InputDate date)
RETURNS VARCHAR(40)
BEGIN
return ISNULL(convert(varchar(40),@InputDate, 120),'null');
END
select dbo.DateOrNullToChar('2013-05-01 23:15:11') as 'result'
戻り値: 2013-05-01
(時間がない)
私も試しvarchar(max)
ました。
関数の目的は、次のようなものです。
Set @ErrorMessage = ' @ArrivalDate=' + dbo.DateOrNullToChar(@ArrivalDate) +
' @DepartureDate=' + dbo.DateOrNullToChar(@DepartureDate);
いずれかの値が null の場合、値全体が null になります。したがって、日付に null 値がある場合、文字列 'null' を表示したいと考えています。