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

Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

Estas en el tema de Problemas con fechas sql 2008 en W7 Esp y W2003 Ing en el foro de SQL Server en Foros del Web. Amigos Tengo una caga grande, quizas no va a ca pero ni diea donde seria tengo mi Servidor sql server 2008 Espress con windows 7 ...
  #1 (permalink)  
Antiguo 30/07/2012, 10:25
Avatar de yetrus  
Fecha de Ingreso: marzo-2006
Mensajes: 252
Antigüedad: 18 años
Puntos: 0
Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

Amigos



Tengo una caga grande, quizas no va a ca pero ni diea donde seria



tengo mi Servidor sql server 2008 Espress con windows 7 en Español y otro con sql server 2008 con Windows 2003 en Ingles



esta consulta en el W7 funciona y en el 2003 no

supongo que es por la fechas, o configuracion regional , alguna otra idea , ayuda urgente please !!


Código:
SELECT s.SOC_id_soc, ISNULL(SUM(pai.PxS_pag_pxs), 0) AS total_pagado,
(SELECT ISNULL(SUM(VCU_val_vcu), 0) AS Expr1
FROM dbo.valorCuotaIntl
WHERE (socio.fn_todate(VCU_ano_vcu, 01, 01) BETWEEN socio.fn_todate(2011, 01, 01) AND GETDATE())) - ISNULL(SUM(pai.PxS_pag_pxs), 0)
AS total_deuda, MAX(s.SOC_nom_soc) AS SOC_nom_soc, MAX(s.SOC_pat_soc + ' ' + s.SOC_mat_soc) AS apellidos, MAX(TS.TSO_id_tso)
AS TSO_id_tso, MAX(TS.TSO_nom_tso) AS tiposocio, MAX(z.ZON_id_zon) AS ZON_id_zon, MAX(z.ZON_nom_zon) AS ZON_nom_zon,
(SELECT ISNULL(SUM(VCU_val_vcu), 0) AS Expr1
FROM dbo.valorCuotaIntl
WHERE (socio.fn_todate(VCU_ano_vcu, 01, 01) BETWEEN socio.fn_todate(2011, 01, 01) AND GETDATE())) AS maxpago, DATEDIFF(mm,
MAX(socio.fn_todate(pai.PxS_ano_pxs, 12, 31)), GETDATE()) AS meses_atraso, DATEDIFF(dd, MAX(socio.fn_todate(pai.PxS_ano_pxs, 12, 31)),
GETDATE()) AS dias_atraso, MAX(s.SOC_est_soc) AS SOC_est_soc, MAX(fam.FAM_id_fam) AS fam_id_fam
FROM dbo.pagoIntlXsocio AS pai RIGHT OUTER JOIN
dbo.socio AS s ON pai.PxS_id_soc = s.SOC_id_soc INNER JOIN
dbo.tipoSocio AS TS ON TS.TSO_id_tso = s.SOC_tip_soc INNER JOIN
dbo.zona AS z ON z.ZON_id_zon = s.SOC_zon_soc INNER JOIN
dbo.familia AS fam ON s.SOC_nom_fam = fam.FAM_id_fam
GROUP BY s.SOC_id_soc
  #2 (permalink)  
Antiguo 30/07/2012, 10:55
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

y cual es el error? o lo adivino asi nada mas viendo el query?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 30/07/2012, 10:59
Avatar de yetrus  
Fecha de Ingreso: marzo-2006
Mensajes: 252
Antigüedad: 18 años
Puntos: 0
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

Cita:
Iniciado por Libras Ver Mensaje
y cual es el error? o lo adivino asi nada mas viendo el query?
aja, perdon , con la presion , lo olvide

Msg 242, Level 16, State 3, Line 2
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Warning: Null value is eliminated by an aggregate or other SET operation.
  #4 (permalink)  
Antiguo 30/07/2012, 11:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

creo que deberias de revisar cual es el codigo de esta funcion

socio.fn_todate(2011, 01, 01) quizas donde funciona agarre un formato de fecha y donde no uno diferente.

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 30/07/2012, 11:46
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

No explicaste que hace la funcion socio.fn_todate, sin embargo mi conjetura es que cree cadena de la siguiente forma '30/07/2012' y la convierte a tipo de fecha (DateTime).
Esto funciona en Español pero no en Ingles.
Si esto es el asunto- yo recomendaría convertir cadenas del formato yyyymmdd ('20120731') a fechas, paraque no hayan ambigüedades.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #6 (permalink)  
Antiguo 30/07/2012, 11:52
Avatar de yetrus  
Fecha de Ingreso: marzo-2006
Mensajes: 252
Antigüedad: 18 años
Puntos: 0
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

Cita:
Iniciado por Libras Ver Mensaje
creo que deberias de revisar cual es el codigo de esta funcion

socio.fn_todate(2011, 01, 01) quizas donde funciona agarre un formato de fecha y donde no uno diferente.

saludos!
esta es la funcion

Código:
ALTER FUNCTION [socio].[fn_todate] 
(
	@year int
	,@month int
	, @day int
)
RETURNS datetime
AS
BEGIN
	DECLARE @sReturnValue datetime

	-- Add the T-SQL statements to compute the return value here
	--SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
	select @sReturnValue = CONVERT(datetime, CONVERT(char(10), cast(@year as varchar) + '-'+cast(@day as varchar)+'-'+cast(@month as varchar), 111))

	-- Return the result of the function
	RETURN @sReturnValue

END
  #7 (permalink)  
Antiguo 30/07/2012, 12:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

ahi el problema que menciona GeriReshef

select @sReturnValue = CONVERT(datetime, CONVERT(char(10), cast(@year as varchar) + '-'+cast(@day as varchar)+'-'+cast(@month as varchar), 111))

quieres regresar una fecha en formato yyyyddmm y en ingles se maneja lo que es ddmmyyyy :) revisa esa funcion y acomoda al formato correcto :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 30/07/2012, 14:26
Avatar de yetrus  
Fecha de Ingreso: marzo-2006
Mensajes: 252
Antigüedad: 18 años
Puntos: 0
Respuesta: Problemas con fechas sql 2008 en W7 Esp y W2003 Ing

Excelente amigos !
deje la funcion asi y se acabo el drama

select @sReturnValue = CONVERT( datetime, CONVERT(char(10), cast(@month as varchar) + '-'+cast(@day as varchar)+'-'+cast(@year as varchar), 111))

Etiquetas: esp, ing, select, server, sql, win2003
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 02:01.