Hola Foro. Necesito por favor si me pueden ayudar con este problema.
Segun la documentacion de sqlserver 2005, las variables de tipo fecha, se guardan en formato ansi AAAADDMM, y dependiendo de la representacion que uno quiera mostrar en los select, habra que especificar el como aparecen estas fechas con la instriuccion set format {formato}
Tengo una funcion escalar, que acepta parametros de varios tipos, incluyendo 2 parametros de tipo datetime (usados para especificar un rango de fecha)
aca la funcion
Código:
USE [bdcmc_ci]
GO
/****** Object: UserDefinedFunction [dbo].[uf_ope_get_hhs_insp] Script Date: 05/17/2010 15:53:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[uf_ope_get_hhs_insp]
(
@oricod char(15),
@NomIns char(20),
@FechaInicio datetime,
@FechaTermino datetime
)
returns decimal(10,2)
as
begin
declare @Total_HH_insp decimal(10,2)
select @Total_HH_insp = sum(datediff(minute, ih.inghorsal, ih.inghorreg)) / 60.0
from ingcab ic
inner join inghor ih on ic.ingnum = ih.ingnum
where ic.oricod = @oricod
and ic.doctipcod = 'TH'
and ic.ingusu = @NomIns
and ih.inghorfeh between @FechaInicio and @FechaTermino
return @Total_HH_insp
end
dicha funcion, ejecuta bien por si sola, usando parametros de fecha especificados de la siguiente manera
select dbo.uf_ope_get_hhs_insp('018', 'psanmartinr', '29-03-2010', '04-04-20' )
en donde claramente se ve dd-mm-aaaa
el problema se da, al ejecutar la funcion desde un procedimiento almacenado
dicho procedimiento, crea una tabla temporal en donde se obtienen las fechas de inicio y termino de semana de cierto intervalo de tiempo. posteriormente, utilizo esa misma estructura, para ejecutar la funcion de calculo comnetada anteriormente. el problema se da, en que en la tabla creada, el formato es AAAA-MM-DD, y al usar esos campos como parametros de la funcion, la funcion me devuelve NULL para ese rango de fecha
aca creo la tabla temporal
Código:
create table
##Fechas (NumeroSemana int,
FechaInicioSem datetime,
FechaTerminoSem datetime)
despues ejecuto algun proceso para llenar los datos de la tabla
luego ejecuto este select
Código:
select FechaInicioSem,
FechaTerminoSem,
dbo.uf_ope_get_hhs_insp(@OriCod, @NomInsp, FechaInicioSem, FechaTerminoSem) as HHRealesSemana
El formato en que se agregan los datos a la tabla temporal, es AAAA-MM-DD, y no hay caso que la funcion (que tiene declrados los parametros como datetime) los pueda procesar como corresponde.
alguna idea que me pueda ayudar a resolver este tema.
de antemano, muy agradecido.