Visual Basic.NET - Problema con rango de fechas

 
Vista:
sin imagen de perfil
Val: 28
Ha disminuido su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema con rango de fechas

Publicado por Adolfo (55 intervenciones) el 27/12/2017 00:33:54
Buenas amigos,

Tengo la siguiente instruccion para seleccionar una lista de productos en base a un rango de fechas, desde DTPFechaInicial hasta DTPFechaFinal.


DAStr = New OleDbDataAdapter("SELECT CodigoProd, NombreProd, PrecioProd, CantidadUnidVendProd, FechaFac, NumFactura FROM TBFacturasDetalle WHERE Val(CodigoCategoriaProd) = '" & VarCodigoCat & "' AND Cdate(FechaFac) >= '" & CDate(DTPFechaInicial.Value) & "' AND CDate(FechaFac) <= '" & CDate(DTPFechaFinal.Value) & "' ORDER by FechaFac, NombreProd", m_cn)

Tengo registros en la tabla que empiezan a partir del Dic/12/21017, si consulto un rango de fechas del Dic/01/2017 hasta el Dic/26/2017 me muestra la informacion correctamente, igual si consulto a partir del Dic/02/2017.
Pero si consulto a partir del Dic/03/2017 me dice que no hay registros en este rango de fechas. Porque??

Pareciera que interpreta que 03 es mayor que 12, pues 3 es mayor que el 2 de (12), lo mismo sucede si consulto fechas iniciando en 04,05...09.

Pero, si consulto a partir del 10/Dic/2017 vuelve a funcionar bien, pues el 0 de (10) is menor que el 2 de (12)

Que debo hacer para que me compare bien el rango de fechas. Nota mi formato de fecha es Americano (MM/dd/yyyy)

Agradeceria cualquier sugerencia!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema con rango de fechas

Publicado por Miguel (476 intervenciones) el 27/12/2017 04:50:46
No entiendo cuál es el inconveniente. En las bases de datos SQL solo basta con configurar correctamente el tipo de campo (DATE o DATETIME) y usar:


1
SELECT * FROM tabla WHERE fecha BETWEEN '2017/12/01' AND '2017/12/31'

O:

1
SELECT * FROM tabla WHERE fecha >=  '2017/12/01' AND fecha <= '2017/12/31'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema con rango de fechas

Publicado por Adolfo (55 intervenciones) el 27/12/2017 20:35:28
Gracias, ya logre arreglarlo, lo hice agregando on "#" al principio y al final de cada instruccion de Fecha.

Cdate(FechaFac) >= #'" & CDate(DTPFechaInicial.Value) & "'# AND CDate(FechaFac) <= #'" & CDate(DTPFechaFinal.Value) & "'#
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar