我有一个无法解决的奇怪错误(使用单行函数)。
此代码有效:
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”。