problema kon datatime

01/09/2005 - 16:37 por Miko_tnt | Informe spam
buenas .. necesito hacer una consulta de una tabla en mi base de datos y
para esto tengo ke filtar unas fecha (desde, hasta), estas las obtengo de 2
objetos DateTimePicker y lo hago de la siguiente manera:

dim consulta as string = "select fecha from miTabla where fecha between '"

consulta &= DateTime.Parse(dtpDesde.Value) & "' and '" &
DateTime.Parse(dtpHasta.Value) & "'"

en mi tabla tengo una columna (fecha) que es de tipo datetime
luego en un msgbox muestro mi consulta para aswegurarme que quedo bien...

El problema esta que al capturar la fache del date time pique me la da en
formato

'dd/mm/yyyy hora' y necesito que esto cambie a 'mm/dd/yyyy hora' ya que si
lo dejo como estaba al principio al momento de ejecutar la consulta me sale
un error que dice

"The conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value." komo podria cambiar el formato para
obtener la fecha en dinde primero vengha ell mes??

muchas gracias por su tiempo

Preguntas similare

Leer las respuestas

#1 Diego Cofré
01/09/2005 - 18:05 | Informe spam
Eso sucede porque el motor de base de datos no reconoce el formato de fecha
que estas mandando. Si estas trabajando con Sql Server lo mas conveniente
seria pasar la consulta a un Store procedure parametrizado, asi al agregar
los parametros al objeto command, la conversion se hace automaticamente. Si
estas trabajando con otro motor de db tenes que pasar la fecha de manera
univoca, creo que en Access es algo asi como #aaaa/mm/dd#.

Saludos
Diego
Respuesta Responder a este mensaje
#2 Carlos Gómez
01/09/2005 - 18:47 | Informe spam
Miko_tnt wrote:

buenas .. necesito hacer una consulta de una tabla en mi base de datos y
para esto tengo ke filtar unas fecha (desde, hasta), estas las obtengo de
2 objetos DateTimePicker y lo hago de la siguiente manera:

dim consulta as string = "select fecha from miTabla where fecha between '"

consulta &= DateTime.Parse(dtpDesde.Value) & "' and '" &
DateTime.Parse(dtpHasta.Value) & "'"

en mi tabla tengo una columna (fecha) que es de tipo datetime
luego en un msgbox muestro mi consulta para aswegurarme que quedo bien...

El problema esta que al capturar la fache del date time pique me la da en
formato

'dd/mm/yyyy hora' y necesito que esto cambie a 'mm/dd/yyyy hora' ya que si
lo dejo como estaba al principio al momento de ejecutar la consulta me
sale un error que dice

"The conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value." komo podria cambiar el formato para
obtener la fecha en dinde primero vengha ell mes??

muchas gracias por su tiempo



consulta &= String.Format("{0:MM\/dd\/yyyy\ HH\:mm\:ss}",dpsDesde.Value) & _
"' and '" & _
String.Format("{0:MM\/dd\/yyyy\ HH\:mm\:ss}",dpsHasta.Value) & "'"
Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
01/09/2005 - 18:59 | Informe spam
Tienes que estar atento a lo que haces (mejor usa Option Strict On asi el
que esta atento es VB)!!! Fijate la tonteria (sin intencion de ofender) que
haces:

consulta &= DateTime.Parse(dtpDesde.Value)

La propiedad value de DateTimePicker devuelve un tipo Date, que VB debe
convertir a String para pasarselo a Parse que entonces lo convierte a Date
para que VB entonces lo convierta a String para agregarselo a consulta. Lo
que deberias hacer si es que no quieres usar parametros (mejor usa
parametros!) es usar el metodo ToString de Date para convertir la fecha a
string usando el formato que quieres:

consulta &= dtpDesde.Value.ToString("MM/dd/yyyy") &

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
01/09/2005 - 19:03 | Informe spam
Eso sucede porque el motor de base de datos no reconoce el formato de
fecha que estas mandando. Si estas trabajando con Sql Server lo mas
conveniente seria pasar la consulta a un Store procedure
parametrizado, asi al agregar los parametros al objeto command, la
conversion se hace automaticamente.



No hace falta que sea con un SP ni SQL Server para usar parametros. Puede
ser una simple consulta y con cualquier proveedor. Por ejemplo:

Dim reader As OleDbDataReader
Dim comando As New OleDbCommand

comando.CommandText = "SELECT * FROM Tabla WHERE Campo = ?"
comando.Parameters.Add("campo", 10)

reader = comando.ExecuteReader()

Hay que tener en cuenta que con OleDb los parametros se pasan por posicion y
no por nombre.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida