Foros del Web » Programando para Internet » ASP Clásico »

Seleccionar por fechas

Estas en el tema de Seleccionar por fechas en el foro de ASP Clásico en Foros del Web. Buenas. A ver... Si hago una variable hoy=Date() y abro la tabla de esa forma RS.Open "SELECT * FROM prueba WHERE dia>='"&hoy&"';", oConn, 1 No ...
  #1 (permalink)  
Antiguo 04/08/2002, 07:26
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Seleccionar por fechas

Buenas. A ver... Si hago una variable hoy=Date() y abro la tabla de esa forma RS.Open "SELECT * FROM prueba WHERE dia>='"&hoy&"';", oConn, 1
No es correcto? Es que no me da error, pero me sale una fecha menos a la de hoy, y tienen q ser mayor...
Me podeis ayudar. La questión es que tengo que ordenar por fechas pasadas y proximas fechas.
GRACIAS
  #2 (permalink)  
Antiguo 04/08/2002, 08:51
 
Fecha de Ingreso: abril-2002
Mensajes: 41
Antigüedad: 23 años
Puntos: 0
Re: Seleccionar por fechas

Probaste encerrando la fecha entre numerales o apóstrofes?
Sería una cosa así: "Select * from Tabla where fecha >= #" &hoy& "# order by fecha"
O: "Select * from Tabla where fecha >= '" &hoy& "' order by fecha"
En el caso de usar MS SQL utiliza # como separador de fechas. En MySQL se usa '
Saludos y suerte
  #3 (permalink)  
Antiguo 04/08/2002, 08:56
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Oh gracias! El # nunca lo habia oido usar... pero es que no sé la diferencia entre MySQL i MS SQL. O sea, que no sé lo que estoy usando... Los apóstrofes simples lo he probado y me dice: El controlador ODBC no admite las propiedades solicitadas.
Q hago???
  #4 (permalink)  
Antiguo 04/08/2002, 09:02
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

He probado con # y me hace lo mismo. Si le digo mayores me muestra las menores. Y si cambio el signo > a < no me muestra nada. Sale el mensaje q le puse If RS.EOF.....
Puede ser por el formato de fecha/hora de la BD? Tengo en formato fecha corta dd/mm/aaaa pero no sé que puede fallar!
Si alguien lo ha hecho alguna vez, a lo que digo, me puede ayudar? Le estaré muy agradecido!
GRACIAS!
  #5 (permalink)  
Antiguo 04/08/2002, 16:10
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Seleccionar por fechas

Prueba a cambiar el formato dd/mm/aaaa por
mm/dd/aaaa tal vez por ahi ande el problema
hoy=Day(hoy) & "/" & Month(hoy) & "/" & Year(hoy)

Saludos Kaki
  #6 (permalink)  
Antiguo 04/08/2002, 16:39
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Seleccionar por fechas

Hola:

Porque no lo manejas directamente en bd.
En sql server por ejemplo seria asi

"select * from tabla where campofecha>getdate()"

donde getDate() es una funcion de transact-SQL que te obtiene la fecha del dia. El campofecha tiene que ser del tipo datetime.

saludos!!
  #7 (permalink)  
Antiguo 05/08/2002, 06:40
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Señores, muchas racias por la ayuda, pero no! no funciona! Me hace lo mismo al ponerle WHERE> me lo coje todo (mayores, menores....) y al ponerle < me da el RS.EOF! No lo entiendo pero...
Lo he intentado con el Date(), el mm/dd/aaaa!!!! Lo de Henry, el getDate no, me da error, no querias decir Date() solo?
GRACIAS
  #8 (permalink)  
Antiguo 05/08/2002, 09:05
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

mira, lo acabo de probar y funciona.
tienes que estar seguro que la variable esta en formato fecha.
Código:
**asignas una fecha a la variable
      valor="31/12/02"  
**o bien
      valor=date  
**luego transformas la variable en fecha(ahora estaba en string)
      valor=cdate(valor)  

** falta la strsql

strsql="select * from lista_centros where fecha<#"&valor&"#"  

** y la conexion o el recordset
set miconexion=conexion.execute (strsql)  
  #9 (permalink)  
Antiguo 05/08/2002, 11:48
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Perdonad. No sé si soy yo el inútil o que, pero no me sale! :-p Mirad, les pondré todo el código!
<%
avui=Date()
avui=cdate(avui)
Dim oConn, RS
Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &Server.MapPath("./concerts.mdb")
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open "SELECT * FROM prova WHERE autodata>#"&avui&"#;", oConn, 1
Do while not Rs.Eof
Response.Write RS("autodata")&"<br>&quot ;
RS.MoveNext
Loop
RS.Close
oConn.Close
Set Rs = Nothing
Set oConn = Nothing
%>

Eso es lo que uso. Tal como está ahora me saca todos los los campos "autodata", en = no me saca ninguno y en < tampoco! y en la tabla hay, seguro!
Q pasa? q soy yo o mi PC?
  #10 (permalink)  
Antiguo 05/08/2002, 12:01
 
Fecha de Ingreso: mayo-2001
Mensajes: 452
Antigüedad: 23 años, 11 meses
Puntos: 1
Re: Seleccionar por fechas

Prueba con el parametro between (esta en la ayuda del access)
  #11 (permalink)  
Antiguo 05/08/2002, 14:17
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Gracias. Pero te podrías explicar más? El acces no me encuentra nada en la ayuda poniendo between. Te puedes explicar? Gracias
  #12 (permalink)  
Antiguo 05/08/2002, 14:49
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Seleccionar por fechas

Hola:

Que raro que no te salga asi:
"select * from tabla1 where fecha>date()"

pero a mi si me sale y lo he probado en access.

saludos!!
  #13 (permalink)  
Antiguo 05/08/2002, 17:16
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

A alguien que le haya funcionado puede pasarme la BD y el documento ASP a [email protected]?
GRACIAS
  #14 (permalink)  
Antiguo 05/08/2002, 17:37
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Seleccionar por fechas

los famosos problemas con las
fechas...access siempre me ha dado problemas para realizar consultas entre periodos de fechas...al final lo mas conveniente que realice fue agregar un campo a la b de datos y aparte de guardar la fecha guardé un entero largo que lo saque en base a una funcion simple con el dia/mes/año...

al final para las consultas utilizo el entero largo...al fin y al cabo es mas facil consultar por rango numericos que por rangos de fecha... :)

  #15 (permalink)  
Antiguo 06/08/2002, 06:02
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Ah gracias bakanzipp. Me puedes ayudar a hacer eso q dices? Que pongo numerico y en formato entero largo? No me deja poner / así...
Gracias de antemano
  #16 (permalink)  
Antiguo 06/08/2002, 09:29
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Seleccionar por fechas

bueno es una funcion simple...
supon esto:

dia= d
mes= m
año = y

entoncees cuando guardes el registro en la b de datos haz esto:
Código:
  
<%
Dim Fecha
Dim d
Dim m
Dim a
Dim Numero

Fecha=request("Fecha")
d=Day(Fecha)
m=Month(Fecha)
y=Year(Fecha)

Numero= d*30 + m*12 + a*365 + a
.
..
...
SQL=Insert into tabla (.....fecha,Fecha_numero) values (......,'"& Fecha &"',"& Numero &");
Set rs=Conexion.execute(SQL) 
...
..
.
bueno asi ingresas el dato numerico de fecha
ej:

Código:
  
10/08/2002
Numero=10*30+8*12+2002*365+2002

11/08/2002
Numero=11*30+8*12+2002*365+2002
este numero nunca se repetira...sera como guardar la fecha...pruebalo.

cuando consultes por una fecha determinada en vez de preguntar por el campo fecha conviertes la fecha ingresada a numerico y preguntas ese resultado por el campo fecha_numero.

Código:
  
Fecha=request("Fecha")
d=Day(Fecha)
m=Month(Fecha)
y=Year(Fecha)

Numero= d*30 + m*12 + a*365 + a

sql="Select * from tabla where fecha_nuemro>="& Numero &";"
...
..
.
bueno eso es todo..espero te sirva.

;)

recuerda que el campo numero debe ser declarado de tipo entero largo en tu base de datos access
  #17 (permalink)  
Antiguo 06/08/2002, 10:16
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

Oh si! perfecto! Yo habia hecho añomesdia. Por ejemplo 10/5/2002 era 20020510 pero no me funcionaba pq el server me daba la fecha sin el 0 y claro...
Muchas gracias! ;)
  #18 (permalink)  
Antiguo 06/08/2002, 13:25
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

bakanzipp ahora q pienso. Esto está muy bien pero no me puedo fiar de esto para ordenar fechas. Pq un numero más grande que otro no significa que venga de una fecha superior. Haz la prueba con la fecha de hoy (6/8/2002 y el 19/6/2002) La segunda da mayor pero es menor. Me explico?
  #19 (permalink)  
Antiguo 06/08/2002, 16:28
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

YEEEAAAH! Amigos ya lo he resuelto! Me ha costado, pero eeeh?! ;) Bueno, os explico lo que he hecho... He ordenado por año&mes&dia asi que hoy (6/8/2002) queda 20020806. Lo que no podia hacer con esto era añadir los 0 delante el 6 del dia y el 8 del mes. El problema era aqui. Pero le he dicho If dia<10 then dia="0"&dia y lo mismo con el mes. Ahora todo va OK!
Bueno, muchas gracias por la ayuda!
GRACIAS! ya podre dormir tranquilo :cantar:
  #20 (permalink)  
Antiguo 06/08/2002, 16:59
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Seleccionar por fechas

mi super formula murio?....chuuuuuuuuuuuu.... esto no puede ser...

gracias por la acotacion splig...habra ke actuar rapido
  #21 (permalink)  
Antiguo 06/08/2002, 17:19
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Seleccionar por fechas

uuuuuuuuuuuuffffffffff ke me asuste ............

la formula no era esta:

Cita:
Numero= d*30 + m*12 + a*365 + a


era asi...
Numero= d + m*12 + a*365 + a

Código:
  
fecha=6/8/2002 
numero= 6+8*12+2002*365+2002 
numero = 6+96+730730+2002= 732831 

fecha=19/6/2002 
numero= 19+6*12+2002*365+2002 
numero = 19+72+730730+2002= 732823

  #22 (permalink)  
Antiguo 07/08/2002, 10:41
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: Seleccionar por fechas

aaaahhhhh! Sí, así sí. Pues me la dijiste multiplicando el día. Bueno, da = asi como lo he hecho creo que también funciona. Además, no es pq la haya sacado "yo", pero con tu formula es muy difícil saber de que fecha procede el número y con la mia, solo mirandola, ya se sabe la fecha original. No? :P
Bueno, de todas formas muchas gracias a todos , si alguién tiene algún problema de fechas creo que se lo podré resolver, después de tantos días de jugar con ellas... ;)
GRACIAS
  #23 (permalink)  
Antiguo 07/08/2002, 10:44
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Seleccionar por fechas

aooooooonde la mia es mejor

es bueno azotarse con un tema porque despues se lo sabe al reves y derecho... :P

nos vemos amigo

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 09:35.