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

SQL-UPDATE fechas ha dejado de funcionar

Estas en el tema de SQL-UPDATE fechas ha dejado de funcionar en el foro de SQL Server en Foros del Web. Hola, Tengo un expediente X que no se ni como titular. He buscado hasta debajo de la alfombra de Google y no hay manera. A ...
  #1 (permalink)  
Antiguo 21/03/2011, 06:22
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 1 mes
Puntos: 0
SQL-UPDATE fechas ha dejado de funcionar

Hola,
Tengo un expediente X que no se ni como titular. He buscado hasta debajo de la alfombra de Google y no hay manera. A ver si alguien sabe al menos por dónde pueden ir los tiros:

Tengo una aplicación web que está localizada en dos servidores en dos paises distintos: España y Bélgica. Los dos servidores de BD están cofigurados igual (en teoría) y hasta ahora no ha habido ningún problema. La aplicación lleva funcionando correctamente 6 meses en Bélgica pero algo ha cambiado y ahora pasa lo siguiente:

Al ejecutar esta sentencia:

Código SQL:
Ver original
  1. UPDATE TBL_USERS SET US_DATE_DISCHARGED= '17/03/2011 16:49:26' WHERE US_ID=58

Lo que quiere decir que está esperando una fecha en este formato: 03/17/2011.

En España no hay problema y en Bélgica hasta hace una semana tampoco pero ahora peta:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Lo curioso es que si vas a la tabla y haces el UPDATE a mano (vas a la celda y lo escribes) funciona. Y si en vez de un UPDATE desde el código usas un recordSet para updatear la fila, funciona. Lo ÚNICO que no funciona es hacer una sentencia UPDATE tanto desde código como desde el própio SQL.

Durante 6 meses ha estado funcionando (hay pruebas). Hemos comprobado que no hayan cambiado el idioma de la BD pero está igual que la BD de España. Las fechas en la configuración regional de Bélgica son iguales que en España. Algo debe de haber cambiado pero no alcanzo a ver el qué. Pero nada de esto tiene sentido si luego vas a la BD y pones la fecha a mano y funciona.

¿Alguién sabe qué puede estar pasando?

Muchísimas gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 21/03/2011, 08:24
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

Si te funcion asi como dices, revisa la configuracion de region y horario, puede que eso te este causando problemas.-

en lo personal, ise pruebas y no me Funciono como tu lo muestras en ese ejemplo-.

Si mal no recuerdo, tenia una funcion que me solucionaba este tipo de problemas... pues al hacer los Cast o Converts, tampoco te toma la fecha ya que se sale de rango.-

buscare en el baul de las funciones y en cuanto tenga algo te la publico.-
  #3 (permalink)  
Antiguo 21/03/2011, 09:51
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

En realidad no estoy buscando una solución para las fechas. Se cómo arreglarlo, gracias de todos modos. Lo que me preocupa es que haya cambiado de repente. Tengo varias sentencias como ésta en el código (estoy hablando de una aplicación de más de 150 archivos) y no quiero tener que cambiarlos solo porque ahora de repente algo ha cambiado y está haciendo fallar eso en concreto. ¿Qué ha podido cambiar? ¿Una actualización del Servidor? ¿Del SQL?

He revisado ya la configuración regional y está correcta. De hecho el servidor me devuelve la fecha en el mismo formato que lo hace en España, el problema no es ni la configuración del IIS ni del SQL porque ambos muestran el formato de las fechas de manera correcta (DD/MM/YYYY)

El problema reside únicamente en la sentencia UPDATE (también en el INSERT) de ese formato de fechas, que curiosamente es el que ya está almacenado en la BD y el que se puede escribir sin problemas en las propias tuplas.
  #4 (permalink)  
Antiguo 21/03/2011, 12:18
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

Revisa los collation de las columnas y tablas muchas veces tambien da problemas por las fechas.
  #5 (permalink)  
Antiguo 22/03/2011, 14:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

Siempre el manejo de fechas se hace en formato ANSI (yyyymmdd) y te evitaras muchos dolores de cabeza.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 23/03/2011, 04:59
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

El dolor de cabeza ya lo tengo. La aplicación fue pensada en un principio para España así que no había motivo para cambiar nada. Hicimos la internacionalización a un país que tiene el mismo formato de fechas que el nuestro, con lo cual un problema menos. Para otra vez ya lo tendré en cuenta pero ahora mismo lo que me preocupa es que cambien cosas en el SQL y no nos enteremos...
  #7 (permalink)  
Antiguo 23/03/2011, 11:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: SQL-UPDATE fechas ha dejado de funcionar

Bueno, si a tu SQL Server, por ejemplo, le cambias el LENGUAJE, de Ingles a Español, ahi empiezan tus dolores de cabeza.

Por eso mi observacion, aunque esta fuera de entorno, si voy a guardar FECHAS, lo hago en campos tipos DATETIME con formato ANSI (yyyymmdd), si voy a guardar importes, lo hago en campos de tipo MONEY, si voy a guardar datos numericos con decimales, lo hago en DECIMAL(X,X), etc.

Si declaro un campo VARCHAR(50) y empiezo a guardar datos FECHA, entonces, tendre el problema de hacer CAST o CONVERT.

Saludos
__________________
MCTS Isaias Islas

Etiquetas: fechas
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 11:06.