Problema con instalacion sql sever en ingles y fechas

02/09/2009 - 09:40 por Daniel A. | Informe spam
Hola,

Estoy en el desarrollo avanzado de un programa, el cual funciona bien
en diversas maquinas que hemos instalado.

El caso es que ahora hemos instalado un sql server en ingles, version
SQL Server 2008 Express, le hemos adjuntando las bases de datos tal y
como las tenias, y la sorpresa ha sido que nos fallan los insert de
las fechas.

Si tengo una columna datetime y hago un insert asi

"insert into mitabla (fecha) values '31/12/2009'"

Me da error de conversion de varchar a datetime, le tengo que pasar
primero el mes para que funcione:

"insert into mitabla (fecha) values '12/31/2009'"

Pero esto me obliga a comprobar todas las inserts y updates del
programa, cosa que me da miedo solo de pensarlo :) NO he visto en la
configuración del servidor la posibilidad de cambiar algo para que no
trate las fechas de esa manera. Y ademas acabo de comprobar que con la
instalación para español del SQL Server si hago el insert en formato
americano me da error, porque espera dia/mes/año, con lo cual no puedo
cambiar las selects.

La solucion podria ser, no instales sql server en ingles, instala solo
la version española, pero yo no puedo asegurar que no tenga ningun
cliente que no lo tenga ya instalado en ingles, y este no se si es
problema a nivel del motor de base de datos o de la instancia.

He comprobado la base de datos, la intercalacion y esta en
Modern_Spanish con lo cual es la correcta

¿Alguna idea?

Preguntas similare

Leer las respuestas

#1 Ruben Garrigos
02/09/2009 - 09:45 | Informe spam
Hola Daniel,

Puedes indicar el idioma por defecto a nivel de usuario o a nivel de
instancia, aunque el primero prevalecería al segundo. Bastaría con que
fijases pues el idioma a castellano para el usuario que acceda a tu base
de datos para no tener ese problema.

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Daniel A. escribió:
Hola,

Estoy en el desarrollo avanzado de un programa, el cual funciona bien
en diversas maquinas que hemos instalado.

El caso es que ahora hemos instalado un sql server en ingles, version
SQL Server 2008 Express, le hemos adjuntando las bases de datos tal y
como las tenias, y la sorpresa ha sido que nos fallan los insert de
las fechas.

Si tengo una columna datetime y hago un insert asi

"insert into mitabla (fecha) values '31/12/2009'"

Me da error de conversion de varchar a datetime, le tengo que pasar
primero el mes para que funcione:

"insert into mitabla (fecha) values '12/31/2009'"

Pero esto me obliga a comprobar todas las inserts y updates del
programa, cosa que me da miedo solo de pensarlo :) NO he visto en la
configuración del servidor la posibilidad de cambiar algo para que no
trate las fechas de esa manera. Y ademas acabo de comprobar que con la
instalación para español del SQL Server si hago el insert en formato
americano me da error, porque espera dia/mes/año, con lo cual no puedo
cambiar las selects.

La solucion podria ser, no instales sql server en ingles, instala solo
la version española, pero yo no puedo asegurar que no tenga ningun
cliente que no lo tenga ya instalado en ingles, y este no se si es
problema a nivel del motor de base de datos o de la instancia.

He comprobado la base de datos, la intercalacion y esta en
Modern_Spanish con lo cual es la correcta

¿Alguna idea?
Respuesta Responder a este mensaje
#2 Carlos Sacristan
02/09/2009 - 10:46 | Informe spam
Además de lo que indica Rubén, te recomiendo que cuando trabajes con fechas,
desde la aplicación cliente siempre las envíes en formato YYYYMMDD o
YYYYMMDD hh:mn:ss para evitarte esos dolores de cabeza. Este formato es
independiente de la configuración regional

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba


"Daniel A." wrote in message
news:
Hola,

Estoy en el desarrollo avanzado de un programa, el cual funciona bien
en diversas maquinas que hemos instalado.

El caso es que ahora hemos instalado un sql server en ingles, version
SQL Server 2008 Express, le hemos adjuntando las bases de datos tal y
como las tenias, y la sorpresa ha sido que nos fallan los insert de
las fechas.

Si tengo una columna datetime y hago un insert asi

"insert into mitabla (fecha) values '31/12/2009'"

Me da error de conversion de varchar a datetime, le tengo que pasar
primero el mes para que funcione:

"insert into mitabla (fecha) values '12/31/2009'"

Pero esto me obliga a comprobar todas las inserts y updates del
programa, cosa que me da miedo solo de pensarlo :) NO he visto en la
configuración del servidor la posibilidad de cambiar algo para que no
trate las fechas de esa manera. Y ademas acabo de comprobar que con la
instalación para español del SQL Server si hago el insert en formato
americano me da error, porque espera dia/mes/año, con lo cual no puedo
cambiar las selects.

La solucion podria ser, no instales sql server en ingles, instala solo
la version española, pero yo no puedo asegurar que no tenga ningun
cliente que no lo tenga ya instalado en ingles, y este no se si es
problema a nivel del motor de base de datos o de la instancia.

He comprobado la base de datos, la intercalacion y esta en
Modern_Spanish con lo cual es la correcta

¿Alguna idea?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida