Problemas con formato de las fechas

23/11/2004 - 12:37 por Javier | Informe spam
Tengo una aplicacion en la cual tengo que acceder a una base de datos
Pervasive y tengo que comparar unas fechas de las almacenadas en la bd y en
los webform. Mi problema viene que a la hora de hacer la sentencia SQL me
dice que el formato de la fecha es incorrecto para acceder a ella.

Alguien me podria decir como se deberia de declarar los tipos de los datos
en las tablas y en el programa?

Lo que ahora tengo es un DataTime al que le cojo la propiedad Date y le
aplico ToShortDateString() para poder generar la cadena SQL, ¿Puede ser este
el problema? y en la bd el campo de la fecha esta como: Date.

Para el tiempo, es decir la hora, seria mas omenos lo mismo?

Muchas gracias, Javier

Preguntas similare

Leer las respuestas

#1 Xavi
23/11/2004 - 13:30 | Informe spam
Hola.
Lo primero que tiene que saber es averiguar el tipo de datos que acepta el
gestor de bases de datos.
Por ejemplo, puede que necesite un formato "dd/MM/yyyy" (lo típico en
español) o "MM/dd/yyyy" (en inglés).
Después tienes que formatear el DateTime para que coincida con ese formato.
El método ToShortDateString() lo formatea según la configuración local de la
máquina donde se ejecute, que para el locale "es-ES" sería "dd/MM/yyyy"
habitualmente, o "MM/dd/yyyy" si estuviese con uno inglés.
Puedes utilizar el método ToString(formato) para especificar un formato de
tu conveniencia, por ejemplo:
dt.ToString("dd/MM/yy", DateTimeFormatInfo.InvariantInfo);

Saludos,
Xavi.
Respuesta Responder a este mensaje
#2 Javier
23/11/2004 - 13:46 | Informe spam
Pues gracias, ya lo consegui y es que resulta de lo mas raro. Te explico.

Cuando pido la fecha al sistema me lo da en formato "dd/mm/aaaa" ok? pero
luego para pasarselo a la base de datos se lo tengo que pasar como:
"aaaa-mm-dd", no me parece normal pero weno por lo menos funciona, no se
porque, pero bueno ya se sabe ..

muchas gracias de nuevo.

Salu2, Javi

"Xavi" escribió en el mensaje
news:O$
Hola.
Lo primero que tiene que saber es averiguar el tipo de datos que acepta el
gestor de bases de datos.
Por ejemplo, puede que necesite un formato "dd/MM/yyyy" (lo típico en
español) o "MM/dd/yyyy" (en inglés).
Después tienes que formatear el DateTime para que coincida con ese


formato.
El método ToShortDateString() lo formatea según la configuración local de


la
máquina donde se ejecute, que para el locale "es-ES" sería "dd/MM/yyyy"
habitualmente, o "MM/dd/yyyy" si estuviese con uno inglés.
Puedes utilizar el método ToString(formato) para especificar un formato de
tu conveniencia, por ejemplo:
dt.ToString("dd/MM/yy", DateTimeFormatInfo.InvariantInfo);

Saludos,
Xavi.


Respuesta Responder a este mensaje
#3 Xavi
23/11/2004 - 14:09 | Informe spam
Es posible que sea debido al driver de la base de datos. En ocasiones los
drivers necesitan un formato específico para las fechas.

"Javier" escribió en el mensaje
news:e$
Pues gracias, ya lo consegui y es que resulta de lo mas raro. Te explico.

Cuando pido la fecha al sistema me lo da en formato "dd/mm/aaaa" ok? pero
luego para pasarselo a la base de datos se lo tengo que pasar como:
"aaaa-mm-dd", no me parece normal pero weno por lo menos funciona, no se
porque, pero bueno ya se sabe ..

muchas gracias de nuevo.

Salu2, Javi
Respuesta Responder a este mensaje
#4 Octavio Hernandez
23/11/2004 - 14:10 | Informe spam
Javier,

Ese es el formato de las constantes en la sintaxis SQL de Pervasive.
No es nada raro que se utilice ese formato, de hecho se le llama ANSI, habrá
algún estándar al respecto. Con él se evitan los problemas de los distintos
formatos de fecha en diferentes países ...

Slds - Octavio

"Javier" escribió en el mensaje
news:e$
Pues gracias, ya lo consegui y es que resulta de lo mas raro. Te explico.

Cuando pido la fecha al sistema me lo da en formato "dd/mm/aaaa" ok? pero
luego para pasarselo a la base de datos se lo tengo que pasar como:
"aaaa-mm-dd", no me parece normal pero weno por lo menos funciona, no se
porque, pero bueno ya se sabe ..

muchas gracias de nuevo.

Salu2, Javi

"Xavi" escribió en el mensaje
news:O$
> Hola.
> Lo primero que tiene que saber es averiguar el tipo de datos que acepta


el
> gestor de bases de datos.
> Por ejemplo, puede que necesite un formato "dd/MM/yyyy" (lo típico en
> español) o "MM/dd/yyyy" (en inglés).
> Después tienes que formatear el DateTime para que coincida con ese
formato.
> El método ToShortDateString() lo formatea según la configuración local


de
la
> máquina donde se ejecute, que para el locale "es-ES" sería "dd/MM/yyyy"
> habitualmente, o "MM/dd/yyyy" si estuviese con uno inglés.
> Puedes utilizar el método ToString(formato) para especificar un formato


de
> tu conveniencia, por ejemplo:
> dt.ToString("dd/MM/yy", DateTimeFormatInfo.InvariantInfo);
>
> Saludos,
> Xavi.
>
>


Respuesta Responder a este mensaje
#5 Javier
24/11/2004 - 09:47 | Informe spam
Muchas gracias por la informacion a ambos. Pero una cosa mas. Entonces con
este tipo de fecha ANSI no tendria problemas a la hora de ejecutar la
aplicacion en ningun equipo, con una confguracion diferente a la española?

gracias de nuevo.

Javier



"Octavio Hernandez" escribió en el mensaje
news:#
Javier,

Ese es el formato de las constantes en la sintaxis SQL de Pervasive.
No es nada raro que se utilice ese formato, de hecho se le llama ANSI,


habrá
algún estándar al respecto. Con él se evitan los problemas de los


distintos
formatos de fecha en diferentes países ...

Slds - Octavio

"Javier" escribió en el mensaje
news:e$
> Pues gracias, ya lo consegui y es que resulta de lo mas raro. Te


explico.
>
> Cuando pido la fecha al sistema me lo da en formato "dd/mm/aaaa" ok?


pero
> luego para pasarselo a la base de datos se lo tengo que pasar como:
> "aaaa-mm-dd", no me parece normal pero weno por lo menos funciona, no se
> porque, pero bueno ya se sabe ..
>
> muchas gracias de nuevo.
>
> Salu2, Javi
>
> "Xavi" escribió en el mensaje
> news:O$
> > Hola.
> > Lo primero que tiene que saber es averiguar el tipo de datos que


acepta
el
> > gestor de bases de datos.
> > Por ejemplo, puede que necesite un formato "dd/MM/yyyy" (lo típico en
> > español) o "MM/dd/yyyy" (en inglés).
> > Después tienes que formatear el DateTime para que coincida con ese
> formato.
> > El método ToShortDateString() lo formatea según la configuración local
de
> la
> > máquina donde se ejecute, que para el locale "es-ES" sería


"dd/MM/yyyy"
> > habitualmente, o "MM/dd/yyyy" si estuviese con uno inglés.
> > Puedes utilizar el método ToString(formato) para especificar un


formato
de
> > tu conveniencia, por ejemplo:
> > dt.ToString("dd/MM/yy", DateTimeFormatInfo.InvariantInfo);
> >
> > Saludos,
> > Xavi.
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida