【发布时间】:2020-03-04 04:33:10
【问题描述】:
我在 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, 0, GETDATE()), 0)
end
if(@dataFim is null)
begin
set @dataFim = (DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, 0, 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,DataInicio,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
结束
【问题讨论】:
标签: oracle plsql database-migration