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