Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Buscar entre 2 fechas

Estas en el tema de Buscar entre 2 fechas en el foro de Bases de Datos General en Foros del Web. Hola amigos quisiera saber como se hace la consulta en sql para Buscar entre 2 fechas. esto es lo que yo tengo pero me marca ...
  #1 (permalink)  
Antiguo 11/03/2005, 10:56
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
Buscar entre 2 fechas

Hola amigos quisiera saber como se hace la consulta en sql para Buscar entre 2 fechas.

esto es lo que yo tengo pero me marca error:

sqlString = " select * from canal where fecha > #18/06/2004# and fecha < #30/09/2004# "

Espero me puedan ayudar...
  #2 (permalink)  
Antiguo 11/03/2005, 12:44
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 5 meses
Puntos: 0
Si trabajas con microsoft SqlServer te recomiendo que veas este artículo:

http://www.microsoft.com/spanish/msd...ces/art157.asp

Salu2.
  #3 (permalink)  
Antiguo 11/03/2005, 13:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 448
Antigüedad: 20 años, 9 meses
Puntos: 1
No se cual es el gestor de base de datos, pero normalmente se usa comilla simple (') para las fechas, y te recomiendo que pongas la hora tambien, para la consulta, ejemplo : '15/12/2005 05:00'.
  #4 (permalink)  
Antiguo 11/03/2005, 13:58
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
ok muchas gracias otra pregunta fijense que hago una consulta de unos campos numericos pero tienen como 8 numeros despues del punto osea decimales y quisiera que solo se mostranan dos decimales como le puedo hacer
lo estoy haciendo en asp con access


Saludos..
  #5 (permalink)  
Antiguo 11/03/2005, 15:20
 
Fecha de Ingreso: julio-2001
Mensajes: 80
Antigüedad: 22 años, 10 meses
Puntos: 1
Prueba esto...

La verdad es que no trabajo nunca con Access, pero en SQL Server y muchos otros motores de SQL funcionaría, pruébalo y me cuentas...:
Código:
select Round(CAMPO, 2) from TABLA
Espero que te funcione,
Saludos
__________________
Carlos Capote Pérez-Andreu
  #6 (permalink)  
Antiguo 11/03/2005, 18:37
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
pues nop no que do asi ojala y me puedan ayudar..
  #7 (permalink)  
Antiguo 14/03/2005, 10:56
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
En MS SQL, sobre el ROUND:
Una de las formas para presentar el campo con dos lugares redondeados podria ser:

select CAST(ROUND(elcampo, 2)as VARCHAR) as DeciFormateado
from latabla

Nota:
Lo estas pasando como varchar no como decimal.


En MS SQL sobre las FECHAS:
Podrias sino tambien utilizar el BETWEEN AND en el WHERE

SELECT *
from canal
WHERE fecha BETWEEN '18/06/2004' AND '30/09/2004'
__________________
Yanira

Última edición por Yanix; 14/03/2005 a las 11:02
  #8 (permalink)  
Antiguo 14/03/2005, 11:42
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
ok mil gracias yanix.
  #9 (permalink)  
Antiguo 14/03/2005, 12:00
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
yanix.

me saca un error

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'CAST(ROUND(rib, 2)as VARCHAR)'.
/ameg/dos_decimales.asp, línea 19
  #10 (permalink)  
Antiguo 14/03/2005, 12:40
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Es para MS SQL no para MS Access...

Para MS Access se supone que el select del ejemplo de engeneral Round(elcampo,2) funcione. O igual podrias tratarle
SELECT formatnumber(round(elcampo,2),2)
FROM latabla
pero seria redundante...

Que tipo de dato le asignaste a ese campo en la tabla?
Lo quieres solo para desplegar el valor redondeado en la pagina o para hacer otros computos? Porque igual en la pagina ASP podrias asignarle el formato si es para despliegue.
__________________
Yanira

Última edición por Yanix; 14/03/2005 a las 12:53
  #11 (permalink)  
Antiguo 14/03/2005, 13:00
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
pues nop tampoco sale me marca este error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] La función 'formatnumber' no está definida en la expresión.
/ameg/dos_decimales.asp, línea 22
  #12 (permalink)  
Antiguo 15/03/2005, 11:58
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Que tipo de dato le asignaste a ese campo en la tabla?
Que version estas usando de access?
__________________
Yanira
  #13 (permalink)  
Antiguo 16/03/2005, 22:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 79
Antigüedad: 19 años, 4 meses
Puntos: 0
hola yo utilizo mysql server 2000 y la funcion que utilizo es la siguiente che bien ´por que los datos los saco de un query union de dos tablas pero la funcion es la misma .





Private Sub Command1_Click()
Dim fecha1 As String
Dim fecha2 As String
If (finicio = "__/__/____") Then
MsgBox "Fecha Inicio del Reporte", vbInformation
finicio.SetFocus
Exit Sub
End If
If ftermino = "__/__/____" Then
MsgBox "Fecha Termino del Reporte", vbInformation
ftermino.SetFocus
Exit Sub
End If
'Fecha1 = Format(ftermino, "DD/mm/yyyy")
'fecha2 = Format(ftermino, "dd/mm/yyyy")
fecha1 = Format$(fechainiciorango, "yyyy-mm-dd")
fecha2 = Format$(fechaterminorango, "yyyy-mm-dd")
conexion
Set rsinicial = New ADODB.Recordset
Set rsfiltrado = New ADODB.Recordset
'rsinicial.Open "SELECT * FROM datosper WHERE fregistro BETWEEN '" & fecha1 & "' and '" & fecha2 & "'", con, adOpenDynamic, adLockReadOnly
'rsinicial.Open "select * FROM registrardatos WHERE registrardatos.fregistro > " & fecha1 & " and registrardatos.fregistro < " & fecha2 & "", con, adOpenDynamic, adLockReadOnly
'rsinicial.Open "select fregistro FROM datosper WHERE datosper.fregistro BETWEEN '" & CDbl(fecha1) & "' and datosper.fregistro '" & Format(fecha2, "yyyy/mm/dd") & "'", con, adOpenDynamic, adLockReadOnly
'rsinicial.Open "SELECT * FROM registrardatos WHERE fregistro BETWEEN " & CDbl(fechainiciorango) & " AND " & CDbl(fechaterminorango) & ",con,adopendymanic,adlockreadonly"
'rsinicial.Open "SELECT *FROM registrardatos WHERE fregistros BETWEEN " & CDbl(Finicio) & " ", con, adOpenDynamic, adLockReadOnly
'rsinicial.Open "SELECT fregistro From dbo.registrardatos WHERE(fregistro BETWEEN CONVERT(DATETIME, '1980-12-30 00:00:00', 102) AND CONVERT(DATETIME, '2004-12-30 00:00:00', 102))", con, adOpenDynamic, adLockReadOnly
rsinicial.Open "SELECT *FROM registrardatos WHERE(fregistro BETWEEN CONVERT(DATETIME,'" & fecha1 & "') AND CONVERT(DATETIME,'" & fecha2 & "'))", con, adOpenDynamic, adLockReadOnly
Set rsfiltrado = rsinicial
If rsfiltrado.EOF Then
MsgBox "No hay datos registrados ntre el rango de fechas", vbCritical
Exit Sub
Else
cont = 1
If Not (rsfiltrado.EOF And rsfiltrado.BOF) Then
Do While Not rsfiltrado.EOF
Form5.grid.Rows = Form5.grid.Row + cont
Form5.grid.TextMatrix(cont, 0) = IIf(IsNull(rsfiltrado(0)), "Campo sin Registro", Trim(rsfiltrado(0))) 'nombre
rsfiltrado.MoveNext
cont = cont + 1
Loop
Exit Sub
End If
End If
End Sub
  #14 (permalink)  
Antiguo 18/03/2005, 12:41
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
ok muchas gracias lo voy a intentar

uso access 2003 y el campo es fecha/hora


SALUDOS:::
  #15 (permalink)  
Antiguo 18/03/2005, 13:06
 
Fecha de Ingreso: enero-2005
Ubicación: Uruguay
Mensajes: 137
Antigüedad: 19 años, 4 meses
Puntos: 0
sqlString = " select * from canal where fecha BETWEEN #18/06/2004# and #30/09/2004# "
  #16 (permalink)  
Antiguo 22/03/2005, 09:59
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
gracias diegocal sabes ahorita lo que trato de hacer es que un campo numerico solo me muestre 2 decimales ya que tiene como 7 y solo quiero que muestre 2.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:23.