URGENTE:_ Error datetime char

20/09/2003 - 14:59 por Pao | Informe spam
El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué. Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.

Preguntas similare

Leer las respuestas

#1 Eladio Rincón
20/09/2003 - 15:15 | Informe spam
Hola,

creo que el problema es el formato de fecha "teórico" que tienes en la columna char; como parece ser que estás realizando conversiones implícitas:
declare @v as char(10)
set @v = '20021201'
declare @fecha as datetime
set @fecha = @v

intenta que el tipo de datos char se corresponda al formato ISO (yyyymmdd), y te evitarás confusiones entre meses y días;

Por cierto, lo ideal sería cambiar el tipo de datos char a datetime, pero supongo que eso conlleva rehacer desarrollos y tiempo ...

Saludos,

Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net



"Comparte lo que sabes, aprende lo que no sepas." FGG

"Pao" escribió en el mensaje news:03b401c37f77$12498630$
El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué. Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.
Respuesta Responder a este mensaje
#2 Pao
20/09/2003 - 15:25 | Informe spam
Ok voy a chequearlo, pero una duda más...como se cual es
el formato de la fecha que viene por default cuando
instalo mi sqlsever??? se a español ingles 7 o 2000 ??
Hola,

creo que el problema es el formato de fecha "teórico" que


tienes en la columna char; como parece ser que estás
realizando conversiones implícitas:
declare @v as char(10)
set @v = '20021201'
declare @fecha as datetime
set @fecha = @v

intenta que el tipo de datos char se corresponda al


formato ISO (yyyymmdd), y te evitarás confusiones entre
meses y días;

Por cierto, lo ideal sería cambiar el tipo de datos char


a datetime, pero supongo que eso conlleva rehacer
desarrollos y tiempo ...

Saludos,

Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net



"Comparte lo que sabes, aprende lo que no sepas." FGG

"Pao" escribió en el mensaje


news:03b401c37f77$12498630$
El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué. Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.



.

Respuesta Responder a este mensaje
#3 Carlos
20/09/2003 - 15:31 | Informe spam
Ese error es cuestión del formato de fecha que estás
utilizando, puedes modificar el formato antes de mandar
la consulta, generalmente para cadenas en SQL el
formato "yyyymmdd" no falla, y el problema es que en
inglés el formato es mm/dd/yy y en español es dd/mm/yy,
entonces cuando el dia es mayor que 12 lo toma como mes y
por eso te manda el error. Con solo ver el dato antes de
enviarlo y al recibirlo vas a poder utilizar el formato
adecuado, para que no te mande el error el sistema.
Ejemplo: Fecha = Format(Fecha, "yyyymmdd") 'Formato para
SQL
El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué.


Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.



.

Respuesta Responder a este mensaje
#4 Eladio Rincón
20/09/2003 - 15:45 | Informe spam
Hola,

dada una configuración de idioma para la instancia, puede consultar la columna dateformat de la tabla master.dbo.syslanguages;


utiliza el procedimiento almacenado sp_configure para obtener el código del idioma de la instancia:
sp_configure 'default language'
config_value te devuelve el código de idioma; como mi idioma es Spanish, me devuelve 5

y luego consultas:
select dateformat from master.dbo.syslanguages
where langid = 5


si necesitas cambiar el formato de fecha de la conexión actual, podrás usar:
set dateformat; mira en BOL que la explicación es muy clara.

Saludos,

Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net



"Comparte lo que sabes, aprende lo que no sepas." FGG

"Pao" escribió en el mensaje news:0d9601c37f7a$b40f8700$
Ok voy a chequearlo, pero una duda más...como se cual es
el formato de la fecha que viene por default cuando
instalo mi sqlsever??? se a español ingles 7 o 2000 ??
Hola,

creo que el problema es el formato de fecha "teórico" que


tienes en la columna char; como parece ser que estás
realizando conversiones implícitas:
declare @v as char(10)
set @v = '20021201'
declare @fecha as datetime
set @fecha = @v

intenta que el tipo de datos char se corresponda al


formato ISO (yyyymmdd), y te evitarás confusiones entre
meses y días;

Por cierto, lo ideal sería cambiar el tipo de datos char


a datetime, pero supongo que eso conlleva rehacer
desarrollos y tiempo ...

Saludos,

Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net



"Comparte lo que sabes, aprende lo que no sepas." FGG

"Pao" escribió en el mensaje


news:03b401c37f77$12498630$
El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué. Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.



.

Respuesta Responder a este mensaje
#5 Pao
20/09/2003 - 17:04 | Informe spam
Muchas gracias...Por su ayuda...lo pruebo y les confirmo.

El mensaje de error inferior me sale al ejecutar una
aplicación VB60, en SQL 7.0 en inglés funciona bien pero
en SQL 2000 en español sale este mensaje de error. No se
si es la versión del SQL 200 por que es español o qué. Me
podrían ayudar con este problema.
Cualquier dato adicional me indican.


Error:
CONMOvimientos
Error '-2147217913 (80040e07)' en tiempo de ejecucion:
[Microsoft][ODBC SQL Server Driver] [SQL Server] La
conversión del tipo de datos char a datetime produjo un
valor datime fuera de intervalo.



.

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