• 締切済み

関数の戻り値の確認について

accessで関数を使用していました sqlserverでのスカラ値関数を設定しましたが戻り値を確認したいのですがprintを記述すると関数の中では使用できませんとエラーになってしまいます?戻り値を確認する方法はないでしょうか じつは下記ストアドから関数を呼び出して結果をテーブルにインサートすると小数点以下のデータが消えています?そこで戻り値が正しいか確認したいのです。accessの場合には少数以下正常に出ます なにかprgの記述がまちがっているのでしょうかご指導おねがいします ----INSERT INTO ストアド----Sum(dbo.scfc_残業時間([残業H])) AS 残業Z----GROUP BY ****---- ------スカラ値関数---dbo.scfc_残業時間---------------------------- set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER FUNCTION [dbo].[scfc_残業時間] ( @ZAN nvarchar(5)) RETURNS real AS BEGIN DECLARE @ZANGYOU int DECLARE @ZANGYOU_H real if (not(@ZAN is null)) if len(@ZAN)= 4 SET @ZANGYOU = convert(int,LEFT(@ZAN,1))*60 + convert(int,substring(@ZAN,3,2))*1 ELSE SET @ZANGYOU = convert(int,LEFT(@ZAN,2))*60 + convert(int,substring(@ZAN,4,2))*1 ELSE SET @ZANGYOU= 0 IF @ZANGYOU > 0 SET @ZANGYOU_H = floor(@ZANGYOU/60*10000)/10000 RETURN @ZANGYOU_H END

みんなの回答

回答No.1

print 1/60 print cast(1 as real)/60 のちがいかと。 「暗黙の変換」でBOOKSONLINEを検索するとそのあたり出てくるかと思います。

hiyotom
質問者

お礼

ありがとうございました 今日いろいろやってみてintをrealに変更したら小数点まででるようになりました 戻り値のほうはご指摘のようにprint記述してみます

関連するQ&A