Problemas con Campo Fecha

15/12/2003 - 23:46 por Sergio Cifuentes | Informe spam
Tengo un problema al insertar a cualquier tabla que contenga fechas con VB
pero si inserto la cadena que mando desde VB desde el QA si me lo inserta,
ya configure las opciones regionales y lo peor es que no he tocado
absolutamente nada, no he actualizado nada, bueno lo que quisiera saber es
si alguien me puede ayudar a darle formato a la fecha desde VB para que no
me de este tipo de error, Gracias.

Preguntas similare

Leer las respuestas

#6 Gustavo Larriera [MVP]
16/12/2003 - 21:13 | Informe spam
Sí. El formato 'AAAA-MM-DD' siempre funciona OK.

Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"Sergio Cifuentes" wrote in message
news:%
esto es independiente de en que idioma este el SQL??

"Gustavo Larriera [MVP]" escribió en


el
mensaje news:#
> Una manera muy fácil es que siempre envies desde la aplicación cliente
hacia
> SQL, las fechas en formato de string 'AAAA-MM-DD'.
>
> Saludos
> gux
>
> Gustavo Larriera, MSFT MVP-SQL
> Uruguay LatAm
>
> This message is provided "AS IS" with no warranties expressed or


implied,
> and confers no rights.
>
>
> "Sergio Cifuentes" wrote in message
> news:%
> > Tengo un problema al insertar a cualquier tabla que contenga fechas


con
VB
> > pero si inserto la cadena que mando desde VB desde el QA si me lo
inserta,
> > ya configure las opciones regionales y lo peor es que no he tocado
> > absolutamente nada, no he actualizado nada, bueno lo que quisiera


saber
es
> > si alguien me puede ayudar a darle formato a la fecha desde VB para


que
no
> > me de este tipo de error, Gracias.
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Sergio Cifuentes
16/12/2003 - 22:52 | Informe spam
Gracias Maximiliano, me funciono bastante bien.
"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
escribió en el mensaje news:#
Si es totalmente independiente de todo si usas este formato no importa ni


el
lenguaje de los usuarios ni la configuracion regional nada de nada, lo


debes
pasar como una cadena entre comillas simples.

Te quedaria algo asi como:

'20031205' por ej

un saludo

Maximiliano Damian Accotto
"Sergio Cifuentes" escribió en el mensaje
news:%
> Gracias Maximiliano, sino cambio la configuracion regional, tengo que
tener
> una por default o no importa cual tenga.
>
> "Maximiliano Damian Accotto"


escribió
> en el mensaje news:
> > hola!! usa el siguiente formato para todas tus fechas siempre y no
deberas
> > cambiar la configuracion regional de ninguna manera.
> >
> > ej VB
> >
> > fecha = format(date,"YYYYMMDD HH:mm:ss")
> >
> > saludos enormes
> >
> > Accotto Maximiliano Damian
> > (maxi_accotto[arroba]speedy.com.ar)
> >
> > MSN:
> > "Sergio Cifuentes" escribió en el mensaje
> > news:%
> > > Tengo un problema al insertar a cualquier tabla que contenga fechas
con
> VB
> > > pero si inserto la cadena que mando desde VB desde el QA si me lo
> inserta,
> > > ya configure las opciones regionales y lo peor es que no he tocado
> > > absolutamente nada, no he actualizado nada, bueno lo que quisiera
saber
> es
> > > si alguien me puede ayudar a darle formato a la fecha desde VB para
que
> no
> > > me de este tipo de error, Gracias.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 ulises
17/12/2003 - 00:39 | Informe spam
Gustavo,

Creo que el formato ISO que mencionas no funciona en todos
los casos, por ejemplo prueba con :

create table #tempo ( formato char(3), fecha datetime )
go
set dateformat dmy
INSERT INTO #tempo VALUES ( 'dmy','1999-12-05')
set dateformat mdy
INSERT INTO #tempo VALUES ( 'mdy','1999-12-05')
select * from #tempo
go
drop table #tempo

veras que el resultado es incorrecto :


formato fecha
dmy 1999-05-12 00:00:00.000
mdy 1999-12-05 00:00:00.000

(2 row(s) affected)

mi recomendación es que siempre se use el formato
ANSI : 'AAAAMMDD'.

Saludos,
Ulises

Sí. El formato 'AAAA-MM-DD' siempre funciona OK.

Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm
Respuesta Responder a este mensaje
#9 Gustavo Larriera [MVP]
17/12/2003 - 01:59 | Informe spam
Depende de la aplicación cliente. Si se usa puramente T-SQL es correcto lo
que muestras. Pero cuando el cliente accede por ODBC/OLEDB se recomienda
usar AAAA-MM-DD hasta dónde yo sé.

/* de los Books Online */
La API de ODBC define secuencias de escape para representar valores de fecha
y de hora, que ODBC llama datos de marca de hora. La definición del lenguaje
OLD DB (DBGUID-SQL) aceptada por el proveedor OLE DB de Microsoft para SQL
Server también admite este formato de marca de hora. Las aplicaciones que
usan las API basadas en ODBC, OLE DB y ADO pueden usar este formato de marca
de hora de ODBC para representar fechas y horas.

Los siguientes son ejemplos de constantes de hora y fecha de ODBC:

{ ts '1998-05-02 01:23:56.123' }

{ d '1990-10-02' }

{ t '13:33:41' }


Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"ulises" wrote in message
news:049c01c3c42d$cabf6860$
Gustavo,

Creo que el formato ISO que mencionas no funciona en todos
los casos, por ejemplo prueba con :

create table #tempo ( formato char(3), fecha datetime )
go
set dateformat dmy
INSERT INTO #tempo VALUES ( 'dmy','1999-12-05')
set dateformat mdy
INSERT INTO #tempo VALUES ( 'mdy','1999-12-05')
select * from #tempo
go
drop table #tempo

veras que el resultado es incorrecto :


formato fecha
dmy 1999-05-12 00:00:00.000
mdy 1999-12-05 00:00:00.000

(2 row(s) affected)

mi recomendación es que siempre se use el formato
ANSI : 'AAAAMMDD'.

Saludos,
Ulises

Sí. El formato 'AAAA-MM-DD' siempre funciona OK.

Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida