請問有關SYBASE語法問題 |
答題得分者是:Mickey
|
JLATSTAR
一般會員 發表:8 回覆:16 積分:4 註冊:2007-05-08 發送簡訊給我 |
以下為小弟設計語法,但執行後會出現問題
CREATE FUNCTION ADDMIN (OTIME VARCHAR(4), ADDM INT) RETURNS VARCHAR(4) DECLARE @SM INT ,@SH INT,@TTIME VARCHAR(4) SET @SH=CAST(LEFT(OTIME,2) AS INT) SET @SM=CAST(RIGHT(OTIME,2) AS INT) SET @SM=@SM @ADDM WHILE @SM<0 BEGIN SET @SM=@SM 60 SET @SH=@SH-1 END WHILE @SM>=60 BEGIN SET @SM=@SM-60 SET @SH=@SH 1 END IF @SH>10 SET @TTIME=CAST(@SH AS VARCHAR) ELSE SET @TTIME='0' CAST(@SH AS VARCHAR) IF @SM>10 SET @TTIME=@TTIME CAST(@SM AS VARCHAR) ELSE SET @TTIME=@TTIME '0' CAST(@SM AS VARCHAR) RETURN @TTIME GO 這是由SQLServer修改成的,想修改到能於SyBase上執行 此語法用於幫時間增加分鐘數 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
JLATSTAR
一般會員 發表:8 回覆:16 積分:4 註冊:2007-05-08 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
JLATSTAR
一般會員 發表:8 回覆:16 積分:4 註冊:2007-05-08 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
我已沒有 Sybase 的環境, 沒法試做...大概是這樣....
create procedure AddMinutes @aDateTime smalldatetime,@IncMinutes int, @Result smalldatetime output as begin select @Result=dateadd(minute,@IncMinutes,@aDateTime) return end go -- Demo T-SQL begin declare @r1 smalldatetime declare @r2 smalldatetime select @r1=getdate() print @r1 exec AddMinutes @r1,10,@r2 output print @r2 end go 如果只是要做到該功能....我記得...有內建的 "dateadd" Function... ===================引 用 JLATSTAR 文 章=================== 感謝大大的回覆,最後想請問的是 Sybase 的PROCEDURE 能寫 傳入 舊時間,增加分鐘數 回傳 新時間 的程式嗎? 該如何寫?
編輯記錄
Mickey 重新編輯於 2007-05-16 10:46:12, 註解 無‧
|
JLATSTAR
一般會員 發表:8 回覆:16 積分:4 註冊:2007-05-08 發送簡訊給我 |
經測試後 procedure是可以的
Demo T-SQL 有些問題 在此替 Mickey 版主更改一下 BEGIN declare @r1 smalldatetime declare @r2 smalldatetime set @r1=getdate() exec AddMinutes @r1,10,@r2 output select @r1,@r2 end go 已上測試於 SyBase Advantage 12.5.1版 ===================引 用 Mickey 文 章=================== 我已沒有 Sybase 的環境, 沒法試做...大概是這樣.... create procedure AddMinutes @aDateTime smalldatetime,@IncMinutes int, @Result smalldatetime output as begin select @Result=dateadd(minute,@IncMinutes,@aDateTime) return end go -- Demo T-SQL begin declare @r1 smalldatetime declare @r2 smalldatetime select @r1=getdate() print @r1 exec AddMinutes @r1,10,@r2 output print @r2 end go 如果只是要做到該功能....我記得...有內建的 "dateadd" Function... ===================引 用 JLATSTAR 文 章=================== 感謝大大的回覆,最後想請問的是 Sybase 的PROCEDURE 能寫 傳入 舊時間,增加分鐘數 回傳 新時間 的程式嗎? 該如何寫? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |