Sql server 2008 转换日期用户定义函数不工作
您好,我正在尝试在SQLServer2008中创建一个用户定义的函数,用于将日期从一种格式转换为另一种格式 我使用的日期缺少centuary,即1610101是1961/01/01,213/02/15实际上是2013/02/15 我已经在好几个网站上搜索了这个问题的解决方案,但我看不出有什么问题Sql server 2008 转换日期用户定义函数不工作,sql-server-2008,case,user-defined-functions,date-conversion,Sql Server 2008,Case,User Defined Functions,Date Conversion,您好,我正在尝试在SQLServer2008中创建一个用户定义的函数,用于将日期从一种格式转换为另一种格式 我使用的日期缺少centuary,即1610101是1961/01/01,213/02/15实际上是2013/02/15 我已经在好几个网站上搜索了这个问题的解决方案,但我看不出有什么问题 create function Convert_Date(@Cdate Date) returns Date as Begin declare @return date select @return =
create function Convert_Date(@Cdate Date)
returns Date
as
Begin
declare @return date
select @return = case @Cdate
when (LEFT(@Cdate,1) = 1) then convert(date,('19'+ CONVERT(VARCHAR(30), right(@Cdate,6))))
when (LEFT(@Cdate,1) = 2) then convert(date,('20'+ CONVERT(VARCHAR(30), right(@Cdate,6))))
return @return
end
你想要这样的东西:
CREATE FUNCTION Convert_Date(@Cdate DATE)
RETURNS DATE
AS
BEGIN
DECLARE @return DATE
SELECT @return =
(
CASE LEFT(@Cdate,1)
WHEN '1' THEN CONVERT(DATE, ('19'+ CONVERT(VARCHAR(30), RIGHT(@Cdate,6))))
WHEN '2' THEN CONVERT(DATE, ('20'+ CONVERT(VARCHAR(30), RIGHT(@Cdate,6))))
END
)
RETURN @return
END
when语句应该是结果与案例匹配的时间。它说它缺少一个声明行,所以我添加了它,它成功了。非常感谢你,詹姆斯。我已经整理好了,这样它会帮助其他任何人找到答案。如果你能把我的回答作为你问题的答案,那就太棒了