我创建了一个标量函数,它应该根据变量以特定格式吐出日期。由于某种原因,我在“其他”周围得到一个错误
我究竟做错了什么 ?
CREATE FUNCTION [dbo].[fGetDateformat] (@datum datetime,@CNotation char(2))
/* accepts datum and CNotation
USAGE:
select fGetDateformat(datum, "EN" or "DE") */
returns varchar(25) AS
BEGIN
declare @ReturnStr varchar(25)
if @Cnotation = 'DE'
set language german
set @ReturnStr =
DATENAME(dd, @datum)+'. '+DATENAME(MM, @datum)+' '+ DATENAME(YEAR, @datum)
else
set @ReturnStr = DATENAME(mm, @datum)+' '+DATENAME(dd, @datum)+', '+ DATENAME(YEAR, @datum)
return @ReturnStr
END
GO
如果T-SQL块跨越多行,则必须将其括在begin
和end
中。例如,这不起作用:
if 1=1
print 'One is one!'
print 'Yay'
else
print 'Huh?'
这将:
if 1=1
begin
print 'One is one!'
print 'Yay'
end
else
print 'Huh?'
请注意,print 'Huh?'
仍然没问题,因为它是单行。