SqlServer2005的表值函数如何转换成ORACLE下的函数。急!!!

skyakon 2010-08-23 10:32:12
有如下SQLSERVER 表值函数 转换成ORACLE下的函数如何写?
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

CREATE FUNCTION [dbo].[GetTimeSteps](
@StartTime DATETIME, --起始时间
@EndTime DATETIME, --结束时间
@StepUnit INT, --时间单位 0-秒 1-分 2-时 3-日 4-周 5-月
@StepLong INT --时间步长
)

RETURNS @TimeSteps TABLE(
ID INT IDENTITY(1,1),
StartTime DATETIME,
EndTime DATETIME
)
AS
BEGIN
DECLARE @TimePos DATETIME

IF (@StepUnit=0) --秒
BEGIN
SELECT @TimePos=DATEADD(ms,-DATEPART(ms,@StartTime)+@StepLong*1000,@StartTime) --下一个开始时间点

WHILE (@StartTime<@EndTime)
BEGIN
IF (@TimePos>@EndTime)
BEGIN
INSERT INTO @TimeSteps VALUES(@StartTime,@EndTime)
BREAK
END
ELSE
INSERT INTO @TimeSteps VALUES(@StartTime,DATEADD(ms,-3,@TimePos))
SET @StartTime=@TimePos
SET @TimePos=DATEADD(ss,@StepLong,@TimePos)
END
END
(还有些类似没有写了)
RETURN
END

...全文
187 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧