0

嗨我想在SQL Server 2008中创建一个用户定义的函数,将日期从一种格式转换为另一种格式。转换日期用户定义的函数不工作

即将使用的日期缺失了百分比,即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 = 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 

回答

0

你想是这样的:

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 

你的陈述时,应在次你的结果时情况匹配。

+0

它说它缺少一个声明行,所以我添加它,它的工作。感谢一百万詹姆斯。 – PaMcD 2013-02-15 11:51:34

+0

我已经整理好了,所以它会帮助其他人找到答案。如果您可以将我的回复标记为您的问题的答案,那就太棒了 – 2013-02-15 12:18:01