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

Datediff en clausula where en consulta asp

Estas en el tema de Datediff en clausula where en consulta asp en el foro de ASP Clásico en Foros del Web. ¿Puede hacerse esta consulta en asp usando una base de datos en sql server? sql= "select * FROM TABLA1 WHERE DateDiff('d', '01/01/2007', date())=" 15 rs.open ...
  #1 (permalink)  
Antiguo 10/01/2007, 10:54
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Datediff en clausula where en consulta asp

¿Puede hacerse esta consulta en asp usando una base de datos en sql server?

sql= "select * FROM TABLA1 WHERE DateDiff('d', '01/01/2007', date())=" 15
rs.open sql,conn

Quiero que me muestre los registros con con fecha los ultimos 15 dias a la fecha actual
  #2 (permalink)  
Antiguo 10/01/2007, 11:03
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
¿Puede hacerse esta consulta en asp usando una base de datos en sql server?

sql= "select * FROM TABLA1 WHERE DateDiff('d', '01/01/2007', date())=" 15
rs.open sql,conn

Quiero que me muestre los registros con con fecha los ultimos 15 dias a la fecha actual
Sí, SQL Server admite DATEDIFF

http://msdn.microsoft.com/library/de...da-db_5vxi.asp

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #3 (permalink)  
Antiguo 10/01/2007, 11:16
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

¿Podrian ayudarme con la consulta?
  #4 (permalink)  
Antiguo 10/01/2007, 12:17
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Datediff en clausula where en consulta asp

Que tal Laika.

La consulta como la pones no es posible, lo siguiente te dará los resultados que esperas:
Código:
sql= "SELECT * FROM TABLA1 t WHERE DateDiff(dd, t.CampoX, getdate())=15"
rs.open sql,conn
Con la observacion de que el campo t.CampoX, debe ser del tipo datetime.

Consulta la liga que Korku te propone, para que tengas más detalle

Saludos y suerte!
  #5 (permalink)  
Antiguo 10/01/2007, 16:57
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
¿Podrian ayudarme con la consulta?
A ver, olvidate de DATEDIFF... Tengo otra solución, por ejemplo si queremos eliminar las ofertas de empleo cuya caducidad pasa de los 30 días:

DELETE FROM ofertas WHERE (DATE()-fecha)>caducidad

fecha, es la fecha que se registró la oferta.
caducidad, es el plazo de tiempo a caducar, en este ejemplo 30 días.

¿Qué te parece? Creo que te valdría para tu problema

Ya me contarás
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #6 (permalink)  
Antiguo 11/01/2007, 03:52
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Haber lo que quiero es que desde asp, me muestre en pantalla los clientes cuya fecha de registro en la base de datos sea de los ultimos 15 dias. Este es el codigo quehe puesto pero no me funciona.

Error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'rs2' no es un nombre de función reconocido.

dias=15
fecha_actual=date()
sql= "select * FROM tabla1 WHERE (fecha_actual - rs2('fecha')) <= dias "
  #7 (permalink)  
Antiguo 11/01/2007, 04:13
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
Haber lo que quiero es que desde asp, me muestre en pantalla los clientes cuya fecha de registro en la base de datos sea de los ultimos 15 dias. Este es el codigo quehe puesto pero no me funciona.

Error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'rs2' no es un nombre de función reconocido.

dias=15
fecha_actual=date()
sql= "select * FROM tabla1 WHERE (fecha_actual - rs2('fecha')) <= dias "
No sé como tienes estructurada la tabla pero... debería asi más o menos...

SELECT * FROM clientes where (DATE()-fecha_registro) < = 15
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #8 (permalink)  
Antiguo 11/01/2007, 04:58
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

El problema creo que es la sintaxis en asp. Me da error. El campo fecha de la base de datos es de tipo fecha.

Este es el codigo:

Set Conn = Server.CreateObject ("ADODB.Connection")
set rs = server.CreateObject("ADODB.recordset")
set rs2 = server.CreateObject("ADODB.recordset")
Conn.Open "bdatos"

sql2= "select * FROM tabla1"
rs2.open sql2,conn

sql="SELECT * FROM tabla1 where ('DATE()'- rs2('fecha')) < =" 15
rs.open sql,conn


El rs2("fecha") cogeria de cada egistro la fecha para hacer la diferencia. No he usado ningun bucle. ¿No es necesario no?
  #9 (permalink)  
Antiguo 11/01/2007, 05:05
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
El problema creo que es la sintaxis en asp. Me da error. El campo fecha de la base de datos es de tipo fecha.

Este es el codigo:

Set Conn = Server.CreateObject ("ADODB.Connection")
set rs = server.CreateObject("ADODB.recordset")
set rs2 = server.CreateObject("ADODB.recordset")
Conn.Open "bdatos"

sql2= "select * FROM tabla1"
rs2.open sql2,conn

sql="SELECT * FROM tabla1 where ('DATE()'- rs2('fecha')) < =" 15
rs.open sql,conn

El rs2("fecha") cogeria de cada egistro la fecha para hacer la diferencia. No he usado ningun bucle. ¿No es necesario no?
Ya... ¿Sabes por qué?

ERROR
sql="SELECT * FROM tabla1 where ('DATE()'- rs2('fecha')) < =" 15
rs.open sql,connERROR

ARREGLADO
sql="SELECT * FROM tabla1 where (DATE() - " & rs2("fecha") & ") < = 15 "
rs.open sql,conn

Revisa bien la sentencia... Otra cosa, ¿Por qué no has probado la otra solución? Es sencilla...

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es

Última edición por Korku; 11/01/2007 a las 05:10
  #10 (permalink)  
Antiguo 11/01/2007, 05:39
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Me dice que ocurrió una excepción en esta linea:

sql="SELECT * FROM tabla1 where (DATE() - " & rs2("fecha") & ") < = 15 "
  #11 (permalink)  
Antiguo 11/01/2007, 05:57
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Perdon, el error que me da es este:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'DATE' no es un nombre de función reconocido.
  #12 (permalink)  
Antiguo 11/01/2007, 06:06
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
Me dice que ocurrió una excepción en esta linea:

sql="SELECT * FROM tabla1 where (DATE() - " & rs2("fecha") & ") < = 15 "
Pues, verás el segundo recordset se mostrará más de 1 registro pero tal como está solo va devolver el primer registro... Lo que no entiendo es porque no me haces caso la otra solución (es muy sencilla y funciona, tal lo he probado yo mismo). En tu caso, con dos recordset es un poco rebuscado ya que el segundo recordset puede haber fechas diferentes teniendo en cuenta que solo devolverá el primer registro
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #13 (permalink)  
Antiguo 11/01/2007, 06:07
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Cita:
Iniciado por Laika Ver Mensaje
Perdon, el error que me da es este:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'DATE' no es un nombre de función reconocido.
¿Qué versión tienes? Yo simplemente he probado con Access, y funciona a la primera
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #14 (permalink)  
Antiguo 11/01/2007, 06:25
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

A ver... cambia la sentencia por esta:

SELECT * FROM tabla1 WHERE DateDiff("d",dateadd("d", Now ,15), fecha) <= 15

Ya me contarás
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #15 (permalink)  
Antiguo 11/01/2007, 06:55
Avatar de Kamarada_Malkav  
Fecha de Ingreso: octubre-2005
Ubicación: Madrid
Mensajes: 70
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Yo es que no estoy seguro de que SQL admita la funcion Date. ¿Seguro que esa no es de ASP nada más?. Yo recuerdo haber usado alguna vez la funcion SYSDATE. Creo que sería algo asi:

sql="SELECT * FROM tabla1 where (SYSDATE - " & rs2("fecha") & ") < = 15 "

Prueba con ella o con la nueva opcion de Korku (o con la anterior que te propuso).

Saludos.
  #16 (permalink)  
Antiguo 11/01/2007, 09:40
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Nada,

Haber tengo ahora puesto esto y error no me da pero me muestra todos:

sql= "SELECT * FROM tabla1 WHERE (DateDiff(d,05/01/2006,11/01/2007)) <= 15 "


He probado de momento escribiendo las fechas haber si aunque sea asi me sale algo pero no me deberia de mostrar mas que un registro y me saca mas.

Haber la tabla donde estan los registros habria por ejemplo:

nombre apellido fecha


Juan Gomez 02/01/2007
Pedro Gomez 05/01/2007
Javi Gonzalez 13/11/2006 (* este no deberia salir)
  #17 (permalink)  
Antiguo 11/01/2007, 09:58
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Datediff en clausula where en consulta asp

Que tal Laika.

Código:
sql= "SELECT * FROM TABLA1  WHERE DateDiff(dd, fecha, getdate())<=15"
rs.open sql,conn
Saludos.
  #18 (permalink)  
Antiguo 11/01/2007, 09:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Datediff en clausula where en consulta asp

Cita:
Quiero que me muestre los registros con con fecha los ultimos 15 dias a la fecha actual

A ver muchachos, no se hagan tanto problema, esto es sencillo

SELECT campos FROM tabla WHERE campo_fecha >= DATEADD(day, -15, getDate())
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 11/01/2007, 10:04
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

Pues a ver si funciona...
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #20 (permalink)  
Antiguo 11/01/2007, 11:00
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Datediff en clausula where en consulta asp

jeje
s i lo dijo u_goldman tiene que

saludos
__________________
JuanRa Pérez
San Salvador, El Salvador
  #21 (permalink)  
Antiguo 11/01/2007, 11:09
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Datediff en clausula where en consulta asp

Al final lo consegui hacer de unamanera mas sencilla:

fecha_actual=date()
fecha_resta = DateDiff("d", rs("fecha"),fecha_actual)

if fecha_resta <= 15 then

y mostrar sus datos co nu nbucle antes del if
  #22 (permalink)  
Antiguo 11/01/2007, 11:15
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Datediff en clausula where en consulta asp

No está nada mal tu solución
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
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 02:06.