プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

print 1/60


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

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

お礼日時:2007/04/20 21:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す