Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problemas con formatos de fechas

Estas en el tema de Problemas con formatos de fechas en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/05/2010, 15:16
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Problemas con formatos de fechas

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.
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #2 (permalink)  
Antiguo 17/05/2010, 16:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Problemas con formatos de fechas

Ya hemos comentado demasiado este tipo de situaciones, para resolver tu problema, debes ocupar formato ANSI (yyyymmdd) en tu funcion, ademas de comparar las fechas con >= y <=
  #3 (permalink)  
Antiguo 20/05/2010, 09:34
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Respuesta: Problemas con formatos de fechas

creo que me estas dando una respuesta tipo, sin siquiera mirar bien lo que estoy consultando.
de todas formas gracias por tu valioso tiempo.
slds
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #4 (permalink)  
Antiguo 20/05/2010, 11:49
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Problemas con formatos de fechas

Has probado tu funcion manualmente con los valores que te devuelven null?
Es decir, asegurate que realmente debe devolver datos con dichas fechas.
Código SQL:
Ver original
  1. SELECT FechaInicioSem, FechaTerminoSem,
  2. dbo.uf_ope_get_hhs_insp(@OriCod, @NomInsp, FechaInicioSem, FechaTerminoSem) AS HHRealesSemana
  3. FROM ##Fechas
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 20/05/2010, 22:29
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Respuesta: Problemas con formatos de fechas

Hola flaviovich, gracias por tu consejo. la verdad, es que si, ya revise la funcion de arriba abajo, combinando todos los formatos en el tipo de fecha, y esta funciona bien cuando la ejecuto tal como lo planteas. El problema siguie sucediendo al tratar de ejecutarla desde otro Stored Procedure.
Finalmente, y aunqque no sea la mejor opcion, he optado por convertir las fechas a formato juliano (numeros) y hacer las comparaciones de manera numerica (como lo hace internamente el excel por ejemplo), lo cual ha dado buenos resultados, claro que a partir de un codigo que no es muy pulcro en su estructura.
Salu2
Plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #6 (permalink)  
Antiguo 21/05/2010, 07:46
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Problemas con formatos de fechas

Muestranos el código completo de tu SP.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: fechas, formatos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.