funcion cdate cambio de comportatmiento "sin previo aviso"

09/05/2006 - 10:00 por .·:m·a·r·l·a:·. | Informe spam
Hola a todos :

recientemente hemos descubierto que las fechas convertidas de un campo
varchar a uno datetime han sido convertidas erroneamente

en un DTS, mediante un Visual Basic Transformation Script, se transforma
dicha fechas, el codigo que las tranforma es :

DTSDestination("PDAT") = cdate(right(DTSSource("PDAT"),2) &"-"
&mid(DTSSource("PDAT"),5,2) &"-" &left(DTSSource("PDAT"),4) &" 00:00")

donde
DTSDestination("PDAT") es del tipo datetime
DTSSource("PDAT") es del tipo varchar

el caso es que desde 2005-08-01 la fechas son transformadas erroneamente
para los dias menores o igual a 12, intercambiando mes-dia

asi
20040203 -> 03/02/2004 (( 3rd February 2004 ))
20050822 -> 22/08/2005 (( 22nd Augost 2005 ))
20050911 -> 09/11/2005 (( 9th November 2005 )) ERROR, instead of 11th
September

digo "sin previo" aviso por que dicho programa ha estado varios años
funcionando sin problemas, y de repente empezo a ocurrir

hemos estado invesigando y no estamos 99.9% seguros que no se hizo ningun
cambio "regional setting" durante el mes de julio/agosto. Y el programa no
se ha modificado durante años.


conoce alguien si dicha funcion tiene algun problema ?? (cdate)
puede ser ello evido a alguna otra causa ??


gracias por adelantado
 

Leer las respuestas

#1 Miguel Egea
09/05/2006 - 10:18 | Informe spam
Es posible que se haya cambiado solamente el idioma por defecto del usuario
que ejecuta ese DTS, vuelvelo a poner en inglés con sp_defaultlanguage


Miguel Egea Gómez

SQLServer MVP

Director de Servicios Corporativos

Solid Quality Learning Iberoamericana



"Solid Quality Learning es el proveedor global en el que puede confiar para
obtener soluciones y educación avanzada para la plataforma completa de
sistemas de bases de datos de Microsoft."

www.SolidQualityLearning.com

".·:m·a·r·l·a:·." escribió en el mensaje
news:eNo$
Hola a todos :

recientemente hemos descubierto que las fechas convertidas de un campo
varchar a uno datetime han sido convertidas erroneamente

en un DTS, mediante un Visual Basic Transformation Script, se transforma
dicha fechas, el codigo que las tranforma es :

DTSDestination("PDAT") = cdate(right(DTSSource("PDAT"),2) &"-"
&mid(DTSSource("PDAT"),5,2) &"-" &left(DTSSource("PDAT"),4) &" 00:00")

donde
DTSDestination("PDAT") es del tipo datetime
DTSSource("PDAT") es del tipo varchar

el caso es que desde 2005-08-01 la fechas son transformadas erroneamente
para los dias menores o igual a 12, intercambiando mes-dia

asi
20040203 -> 03/02/2004 (( 3rd February 2004 ))
20050822 -> 22/08/2005 (( 22nd Augost 2005 ))
20050911 -> 09/11/2005 (( 9th November 2005 )) ERROR, instead of
11th
September

digo "sin previo" aviso por que dicho programa ha estado varios años
funcionando sin problemas, y de repente empezo a ocurrir

hemos estado invesigando y no estamos 99.9% seguros que no se hizo ningun
cambio "regional setting" durante el mes de julio/agosto. Y el programa no
se ha modificado durante años.


conoce alguien si dicha funcion tiene algun problema ?? (cdate)
puede ser ello evido a alguna otra causa ??


gracias por adelantado


Preguntas similares