Ver Mensaje Individual
  #1  
Antiguo 29-06-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Reputación: 18
david_uh Va por buen camino
Question between y datetime !!!!!!!!

Buen día caballeros:

Estoy viendo la sentencia Between trabajando con campos DateTime
tengo un conjunto de datos:...
Cita:
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-30 14:31:16'
2| '2007-06-30 15:08:58'
2| '2007-06-30 15:08:58'
2| '2007-06-30 15:08:58'
pretendo seleccionar entre las fechas '2007-06-29' y '2007-06-30'
escribo esta consulta:
Código SQL [-]
Select tblpagos.id As IdPago, tblpedidos.Total, tblpedidos.NroGuia,
  tblpedidos.IdVendedor, tblpedidos.Id As IdPedido, tblpagos.SaldoCom,
  tblpedidos.IdSisPago, tblpedidos.FechaEnt, tblpagos.FechaPago, tblpagos.Monto,
  tblpedidos.saldo
From tblpedidos Inner Join
  tblpagos On tblpedidos.Id = tblpagos.IdPedido
Where tblpedidos.IdVendedor = 2 And tblpagos.FechaPago Between
  '2007-06-29' And '2007-06-30'
bien esto me arroja lo siguiente:
Cita:
1 | 2007-06-29 15:08:58
2 | 2007-06-29 14:31:16
3 | 2007-06-29 14:31:16
4 | 2007-06-29 14:31:16
pero no incluye los del 2007-06-30 lo que hice fué aumentar el limite superior en un día. osea:
Código SQL [-]
Select tblpagos.id As IdPago, tblpedidos.Total, tblpedidos.NroGuia,
  tblpedidos.IdVendedor, tblpedidos.Id As IdPedido, tblpagos.SaldoCom,
  tblpedidos.IdSisPago, tblpedidos.FechaEnt, tblpagos.FechaPago, tblpagos.Monto,
  tblpedidos.saldo
From tblpedidos Inner Join
  tblpagos On tblpedidos.Id = tblpagos.IdPedido
Where tblpedidos.IdVendedor = 2 And tblpagos.FechaPago Between
  '2007-06-29' And '2007-06-31'

entonces ahora si arroja esto:
Cita:
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-29 14:31:16'
1| '2007-06-30 14:31:16'
2| '2007-06-30 15:08:58'
2| '2007-06-30 15:08:58'
2| '2007-06-30 15:08:58'
es decir el límite superior debe ser mayor de un día para incluir el día de rango superior ????

ahora he probado también asi:

Código SQL [-]
Select tblpagos.id As IdPago, tblpedidos.Total, tblpedidos.NroGuia,
  tblpedidos.IdVendedor, tblpedidos.Id As IdPedido, tblpagos.SaldoCom,
  tblpedidos.IdSisPago, tblpedidos.FechaEnt, tblpagos.FechaPago, tblpagos.Monto,
  tblpedidos.saldo
From tblpedidos Inner Join
  tblpagos On tblpedidos.Id = tblpagos.IdPedido
Where tblpedidos.IdVendedor = 2 And tblpagos.FechaPago Between
  '2007-06-29 14:31:16' And '2007-06-30 15:08:58'

y me arroja todo bien, los 8 registros. osea si es datetime tengo que especificar los limites con hora:mm:ss ???? al parecer si.
Y si no deseo trabajar con hh:mm:ss debo aumentar ellimite superior en un Día??????

gracias por sus aportes
Responder Con Cita