ACTUALIZAR UN CAMPO TIPO SmallDateTime SQL SERVER 2000

29/11/2003 - 15:39 por Romero Diego | Informe spam
Hola

La siguiente instruccion me genera error en algunos servidores de Sql 2000
Ingles y en otros no

UPDATE Tabla SET CampoTipoSmallDatetime='26/11/2003'

Parece que el error es por la conversión de Varchar a Fecha cuando el día es
mayor que 12.

Como hago para actualizar un campo tipo fecha sin colocar el valor entre
comillas como tipo string. ?

Gracias.



Diego Romero

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
29/11/2003 - 15:34 | Informe spam
hola nuevamente!! esta respuesta ya te la respondi en el otro foro!!

aca va nuevamente

hola!! en sql no es aconsejable hacerlo como lo estas haciendo vos?

la forma mas eficiente es la siguiente:

dim fecha

fecha = format(now,"mm/dd/yyyy HH:mm:ss")

sql = "update tabla set campos=valot where fecha >='" & fecha & "'"

cmd.execute sql

esta seria la forma de q no te falle!! el problema es q vos le indicas al
motor q el formato de la fecha lo tome dd/mm/yyyy y esto para el no es asi!!
lo toma de otra forma, por eso si lo q vos decis como dias supera 12 da
error de desvordamiente!! ya q no existen mas de 12 meses

Un saludo enorme



Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()

"Romero Diego" escribió en el mensaje
news:
Hola

La siguiente instruccion me genera error en algunos servidores de Sql 2000


y
otros no

UPDATE Tabla SET CampoTipoSmallDatetime='26/11/2003'

Parece que el error es por la conversión de Varchar a Fecha cuando el día


es
mayor que 12.

Como hago para actualizar un campo tipo fecha desde VB6 sin colocar el


valor
entre comillas como tipo string. ?

Gracias.


Diego









Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()

"Romero Diego" escribió en el mensaje
news:
Hola

La siguiente instruccion me genera error en algunos servidores de Sql 2000
Ingles y en otros no

UPDATE Tabla SET CampoTipoSmallDatetime='26/11/2003'

Parece que el error es por la conversión de Varchar a Fecha cuando el día


es
mayor que 12.

Como hago para actualizar un campo tipo fecha sin colocar el valor entre
comillas como tipo string. ?

Gracias.



Diego Romero


Respuesta Responder a este mensaje
#2 ulises
29/11/2003 - 22:16 | Informe spam
Max,

Para indicar que la forma de manejo que mencionas funciona
muy bien cuando tienes un SQL en inglès pero fallarìa en
una versión en español.

Para hacer la prueba podrìas ejecutar estas sentencias en
un SQL en inglés y en uno en español.

select @@language
create table tablatest ( fecha datetime )
insert into tablatest values ( '11/28/2003 12:12:12')
select * from tablatest
drop table tablatest

en uno en inglès obtendrías :

-
us_english

(1 row(s) affected)


(1 row(s) affected)

fecha
2003-11-28 12:12:12.000

(1 row(s) affected)

mientras que en uno en español :

-
Español

(1 row(s) affected)

Server: Msg 242, Level 16, State 3, Line 1
La conversión del tipo de datos char a datetime produjo un
valor datetime fuera de intervalo.
Se terminó la instrucción.
fecha
-

(0 row(s) affected)

es cierto que podrías modificar las sentencias para que
previamente procesen el SET DATEPART mdy, pero es más
limpio indicar la fecha en formato ANSI de la siguiente
manera :

select @@language
create table tablatest ( fecha datetime )
insert into tablatest values ( '20031128 12:12:12')
select * from tablatest
drop table tablatest

el resultado es el mismo para ambos SQL :

fecha
2003-11-28 12:12:12.000

lo mismo aplica si estas usando sentencias directas en
Visual Basic.

Saludos,
Ulises

hola nuevamente!! esta respuesta ya te la respondi en el


otro foro!!

aca va nuevamente

hola!! en sql no es aconsejable hacerlo como lo estas


haciendo vos?

la forma mas eficiente es la siguiente:

dim fecha

fecha = format(now,"mm/dd/yyyy HH:mm:ss")

sql = "update tabla set campos=valot where fecha >='" &


fecha & "'"

cmd.execute sql

esta seria la forma de q no te falle!! el problema es q


vos le indicas al
motor q el formato de la fecha lo tome dd/mm/yyyy y esto


para el no es asi!!
lo toma de otra forma, por eso si lo q vos decis como


dias supera 12 da
error de desvordamiente!! ya q no existen mas de 12 meses

Un saludo enorme



Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()

"Romero Diego" escribió en el


mensaje
news:
Hola

La siguiente instruccion me genera error en algunos




servidores de Sql 2000
y
otros no

UPDATE Tabla SET CampoTipoSmallDatetime='26/11/2003'

Parece que el error es por la conversión de Varchar a




Fecha cuando el día
es
mayor que 12.

Como hago para actualizar un campo tipo fecha desde VB6




sin colocar el
valor
entre comillas como tipo string. ?

Gracias.


Diego









Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()
Respuesta Responder a este mensaje
#3 Maximiliano d. Accotto
30/11/2003 - 00:35 | Informe spam
tenes toda la razon!! lo q sucede q yo jamas uso sql q no sea en ingles!!
por eso la forma pero lo correcto es hacerlo como decis vos si uno quiere
mantener una compatibilidad definida!!

Un saludo


"ulises" escribió en el mensaje
news:023001c3b6be$1b10c070$
Max,

Para indicar que la forma de manejo que mencionas funciona
muy bien cuando tienes un SQL en inglès pero fallarìa en
una versión en español.

Para hacer la prueba podrìas ejecutar estas sentencias en
un SQL en inglés y en uno en español.

select @@language
create table tablatest ( fecha datetime )
insert into tablatest values ( '11/28/2003 12:12:12')
select * from tablatest
drop table tablatest

en uno en inglès obtendrías :

-
us_english

(1 row(s) affected)


(1 row(s) affected)

fecha
2003-11-28 12:12:12.000

(1 row(s) affected)

mientras que en uno en español :

-
Español

(1 row(s) affected)

Server: Msg 242, Level 16, State 3, Line 1
La conversión del tipo de datos char a datetime produjo un
valor datetime fuera de intervalo.
Se terminó la instrucción.
fecha
-

(0 row(s) affected)

es cierto que podrías modificar las sentencias para que
previamente procesen el SET DATEPART mdy, pero es más
limpio indicar la fecha en formato ANSI de la siguiente
manera :

select @@language
create table tablatest ( fecha datetime )
insert into tablatest values ( '20031128 12:12:12')
select * from tablatest
drop table tablatest

el resultado es el mismo para ambos SQL :

fecha
2003-11-28 12:12:12.000

lo mismo aplica si estas usando sentencias directas en
Visual Basic.

Saludos,
Ulises

hola nuevamente!! esta respuesta ya te la respondi en el


otro foro!!

aca va nuevamente

hola!! en sql no es aconsejable hacerlo como lo estas


haciendo vos?

la forma mas eficiente es la siguiente:

dim fecha

fecha = format(now,"mm/dd/yyyy HH:mm:ss")

sql = "update tabla set campos=valot where fecha >='" &


fecha & "'"

cmd.execute sql

esta seria la forma de q no te falle!! el problema es q


vos le indicas al
motor q el formato de la fecha lo tome dd/mm/yyyy y esto


para el no es asi!!
lo toma de otra forma, por eso si lo q vos decis como


dias supera 12 da
error de desvordamiente!! ya q no existen mas de 12 meses

Un saludo enorme



Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()

"Romero Diego" escribió en el


mensaje
news:
Hola

La siguiente instruccion me genera error en algunos




servidores de Sql 2000
y
otros no

UPDATE Tabla SET CampoTipoSmallDatetime='26/11/2003'

Parece que el error es por la conversión de Varchar a




Fecha cuando el día
es
mayor que 12.

Como hago para actualizar un campo tipo fecha desde VB6




sin colocar el
valor
entre comillas como tipo string. ?

Gracias.


Diego









Accotto Maximiliano Damian
Fundicion San Cayetano S.A.
Buenos Aires Argentina

Gerente de Sistemas y Tecnologia
()
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida