Usar fechas en formato Standar ANSI

31/05/2004 - 10:15 por Miguel Tubia | Informe spam
Hola a todos,
resulta que quiero llamar a un SP de una BD en Sql Server 2000 pasándole un
parámetro DateTime en formato standar ANSI, esto es, YYYYMMDD HH:mm:ss.
Declaro el prámetro como DateTime
para = cmd.Parameters.Add("@Dia", System.Data.SqlDbType.SmallDateTime);

Y luego le añado el valor. Aqui tengo un DateTime 'normal', por lo q lo
tengo q formatear. Había pensado en hacerlo con
fecha.ToString("yyyyMMdd HH:mm:ss")

Pues por pantalla me lo pone bien, pero al asignarlo me tira diciendo que:

"Excepción no controlada del tipo 'System.FormatException' en mscorlib.dll

Información adicional: No se puede reconocer la cadena como valor DateTime
válido."

Haciendo pruebas, intentando tb
System.IFormatProvider format = new
System.Globalization.CultureInfo("en-US", false);

DateTime prueba=DateTime.ParseExact(dt.ToShortDateString(),"yyyyMMdd
HH:mm:ss",format);

Me dice lo mismo, por lo visto no se puede trabajar así en c#, pues en sql
si me deja meterlo en ese formato. Las pruebas las he hecho sin conexión con
BD para descartar q fuera cosa de eso, en un proyecto nuevo q me saq cosas
por consola para ver si daba con el fallo, y es al asignar una fecha así
formateada a una variable de tipo DateTime.
Una solución es poner el parámetro en la BD como varchar y q lo haga el sql,
pero me gustaría, si es posible, hacerlo desde c# pues ahora retocar todo
sería un problemón, aparte que no me parecería una solución "elegante", aunq
si funciona y es lo único q se puede hacer
Si alguien sabe por donde puedo tirar le estaré muy agradecido
Un saludo
 

Leer las respuestas

#1 Miguel Tubia
31/05/2004 - 10:32 | Informe spam
Hola de nuevo,
parece q si lo pongo "yyyy-MM-dd" si deja, y con esto me sirve para mis
propósitos. De todos modos ¿sabeis como se puede poner sin los guiones, o
son absolutamente necesarios en c#?
Muchas gracias a todos
Un saludo

Preguntas similares