我對SQL相當陌生,試圖編寫一個程序來檢查傳入的值並設置本地日期時間變量,然後返回該變量。SQL從過程返回日期時間導致隱式轉換錯誤
USE [MyDB]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [Common].[Update_Date]
@Status_ID int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Date_Value DATETIME
IF @Status_ID = 2
SET @Date_Value = GETDATE()
ELSE
SET @Date_Value = NULL
RETURN @Date_Value
END
GO
當我嘗試執行該腳本,我得到以下錯誤:
消息257,級別16,狀態3,過程UPDATE_DATE 19行 從數據datetime類型爲int隱式轉換是不允許的。使用CONVERT函數來運行此查詢。
它試圖用我的@Status_ID參數做些什麼嗎?
什麼是決定因素選擇使這個功能在程序上? – ShelbyZ
通常我會將存儲過程看作是將更改存儲在數據庫中的數據的操作,或者返回整個結果集以及可選的OUTPUT參數值。而函數不影響任何數據,只是基於傳遞的參數和可選的數據讀取返回一個值 – Curt