MS SQL标量函数,用于根据语言切换格式化日期

问题描述 投票:1回答:1

我创建了一个标量函数,它应该根据变量以特定格式吐出日期。由于某种原因,我在“其他”周围得到一个错误

我究竟做错了什么 ?

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
sql user-defined-functions date-format scalar
1个回答
0
投票

如果T-SQL块跨越多行,则必须将其括在beginend中。例如,这不起作用:

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?'仍然没问题,因为它是单行。

© www.soinside.com 2019 - 2024. All rights reserved.