我在sql server中有此过程,该过程执行此计算日期的逻辑并返回该信息以供应用程序使用,但是不幸的是,我将不得不切换到oracle数据库,因此希望您的帮助知道我必须更改的语法
P.S:从未使用过oracle数据库
CREATE PROCEDURE [dbo].[SP_ObterDadosApontamentosOperacional]
@dataInicio as dateTime = null,@dataFim as datetime = null,@embarcacaoId as varchar(50) = null
AS
BEGIN
if(@dataInicio is null)
begin
set @dataInicio = DATEADD(day,DATEDIFF(day,GETDATE()),0)
end
if(@dataFim is null)
begin
set @dataFim = (DATEADD(ms,-3,DATEADD(dd,DATEDIFF(dd,GetDate()),0)) +1)
end
select
codigoOperacao.Id as 'Id',codigoOperacao.Descricao as 'Descricao',codigoOperacao.Codigo as 'CodigoOperacao',count(codigoOperacao.Codigo) as 'TotalUnitario'
into #parcial
from INFO_APONTAMENTO as apontamento
inner join CODIGOS_OPERACAO as codigoOperacao on codigoOperacao.Id = apontamento.CodigosDeOperacao_Id
where apontamento.DataCadastro between @dataInicio and @dataFim
and ((apontamento.Barco_Id = @embarcacaoId) or @embarcacaoId is null)
group by
codigoOperacao.Codigo,codigoOperacao.Descricao,codigoOperacao.Id
/*--------------------------------------------*/
select
Id,Descricao,CodigoOperacao,DataInicio,DataTermino,DATEDIFF(MINUTE,DataTermino)
into #tempApontamentosPorHora
from #tempApontamentos
where DataInicio is not null
and DataTermino is not null
declare @somaTotal as int = (select sum(totalUnitario) from #parcial)
select *,@somaTotal as TotalAgregado from #parcial
结束