2010-01-19 69 views
2

我的ERP數據庫使用不可空的日期時間字段。但是,如果日期時間不存在,則輸入日期時間,並返回'1900-01-01 00:00:00.000'作爲值。存儲過程與用戶定義的錯誤處理功能

我想從日期時間字段中剝離日期時禁止1900日期。我創建了下面的UDF這樣做:

CREATE FUNCTION ExtractDate(@DirtyDate DATETIME) 
    RETURNS VARCHAR(10) AS 
    BEGIN 
    DECLARE @CleanDate VARCHAR(10) 
    SELECT @CleanDate = 
      CASE 
       WHEN @DirtyDate = '' THEN '' 
       ELSE CONVERT(VARCHAR(10), @DirtyDate, 101) 
      END 

    RETURN @CleanDate 
    END 

這工作,但我想補充的情況下,用戶使用它比上一個時間字段以外的其他錯誤處理。谷歌搜索後,我發現這是UDF不可能的。

但是,如果我把它寫成存儲過程,我仍然可以在select語句中調用它嗎?有人能指引我朝着正確的方向嗎?

回答

2

不,您不能在select語句中調用存儲過程。

我鼓勵您希望包含錯誤處理的雄心壯志,但您最好的選擇是在應用程序方面檢查 - 不允許人們在非日期字段上使用該函數。