0

日付パラメーターを渡す際に問題に直面しています。

エラーが発生します

文字列から日時を変換する際に変換に失敗しました。

私のストアド プロシージャは以下のとおりです。何をすべきか教えてください。

ALTER PROCEDURE [dbo].[WEEKLY_REPORT_PROC](
    @START_DATE DATETIME,
    @END_DATE     DATETIME,@PRACTISE_NAME NVARCHAR(MAX))--,
    -- @D1 DECIMAL(5,2),
    -- @D2 DECIMAL(5,2),
    -- @D3 DECIMAL(5,2),
    -- @D4 DECIMAL(5,2),
    -- @D5 DECIMAL(5,2),
    -- @D6 DECIMAL(5,2),
    -- @D7 DECIMAL(5,2))
AS 
BEGIN


EXEC SP_EXECUTESQL @QUERY

DECLARE CP_DETAILS CURSOR FOR SELECT * FROM #TEMP

OPEN CP_DETAILS
FETCH NEXT FROM CP_DETAILS INTO     @RESOURCE_NAME,@DAY1,@DAY2,@DAY3,@DAY4,@DAY5,@DAY6,@DAY7,@UTILIZATION

WHILE (@@FETCH_STATUS =0)
BEGIN
    SET @UTILIZATION = dbo.UTILIZATION(@START_DATE,@END_DATE,@DAY1,                                         @DAY2,@DAY3,@DAY4,@DAY5,@DAY6,@DAY7)
    --INSERT INTO @WEEKLY_REPORT_DETAILS_INFORMATION VALUES(@RESOURCE_NAME,
    --          @DAY1,@DAY2,@DAY3,@DAY4,@DAY5,@DAY6,@DAY7,@UTILIZATION)
    UPDATE #TEMP SET UTILIZATION = @UTILIZATION WHERE RESOURCE_NAME=@RESOURCE_NAME

    FETCH NEXT FROM CP_DETAILS INTO @RESOURCE_NAME,@DAY1,@DAY2,@DAY3,@DAY4,@DAY5,@DAY6,@DAY7
END
CLOSE CP_DETAILS
DEALLOCATE CP_DETAILS
SELECT * FROM #TEMP
--SELECT DBO.RETRIEVE(@QUERY) AS QUERY FROM CP_DETAILS
PRINT @QUERY
DROP TABLE #TEMP
RETURN 
END 
END

途中で、1 つのユーザー定義関数を使用utilizationし、パラメーターを日付フィールドとして渡します

4

1 に答える 1

-1

試す...

DECLARE @startdate varchar(30), @enddate varchar(30)

SET @startdate = CONVERT(varchar(10), '2012-03-31', 101)
SET @enddate = CONVERT(varchar(10),'2012-04-06', 101)


EXEC WEEKLY_REPORT_PROC @startdate, @enddate,'CS'

あなたの問題はあなたが渡しているものです: YYY-MM-dd は SQL によって 'MM/dd/YYYY' のような日時に自動的に変換されません。101 形式に変換すると問題が解決するはずです。

于 2013-03-15T18:34:34.520 に答える