Buscar en rango de fechas

05/10/2004 - 01:21 por Rookie | Informe spam
Intento hacer una consulta que me devuelva los valores entre dos fechas, he
logrado buscar >= Fecha1 (pero me busca mes/dia/año) y necesito especificarle
que sea (dd/mm/aaaa)
este es mi codigo:
strSQL = "SELECT DocNum, DocDate, CardCode, CardName, Convert( float(12),
VatSum, 1) as ITBM, Convert( float(12), DocTotal, 1) as Total, (DocTotal -
VatSum ) as SubTotal, (sELECT Sum(DocTotal) FROM [OPCH])as GranTotal From
OPCH "&_
"WHERE DocNum >="& s_DocNum &" and DocNum <="& s_DocNum2 &" and DocDate

= " & "'" & s_DocDate & "'" and DocDate <= " & "'" & s_DocDate2 & "'"



me lanza un mensaje de error

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
05/10/2004 - 02:07 | Informe spam
para SQL Utiliza el formato 'yyyymmdd'
strSQL = "Select * from table where Fecha Between '20040520' And '20040620'
"

para Access utiliza el formato 'yyyy/mm/dd'
strSQL = "Select * from table where Fecha Between '20040520' And '20040620'
"


Saludos,
Jhonny Vargas P.




"Rookie" escribió en el mensaje
news:
Intento hacer una consulta que me devuelva los valores entre dos fechas,


he
logrado buscar >= Fecha1 (pero me busca mes/dia/año) y necesito


especificarle
que sea (dd/mm/aaaa)
este es mi codigo:
strSQL = "SELECT DocNum, DocDate, CardCode, CardName, Convert(


float(12),
VatSum, 1) as ITBM, Convert( float(12), DocTotal, 1) as Total, (DocTotal -
VatSum ) as SubTotal, (sELECT Sum(DocTotal) FROM [OPCH])as GranTotal From
OPCH "&_
"WHERE DocNum >="& s_DocNum &" and DocNum <="& s_DocNum2 &" and


DocDate
>= " & "'" & s_DocDate & "'" and DocDate <= " & "'" & s_DocDate2 & "'"

me lanza un mensaje de error


Respuesta Responder a este mensaje
#2 Rookie
05/10/2004 - 16:25 | Informe spam
El problema es que la fecha la toma de la url:
www.misitio.com?Fecha/01/2004&Fecha21/01/2004

estas fechas se guardan en una variable, la consulta toma la variable y la
utiliza en la consulta, pero me la lee como mes/dia/año


"Jhonny Vargas P. [MVP]" wrote:

para SQL Utiliza el formato 'yyyymmdd'
strSQL = "Select * from table where Fecha Between '20040520' And '20040620'
"

para Access utiliza el formato 'yyyy/mm/dd'
strSQL = "Select * from table where Fecha Between '20040520' And '20040620'
"


Saludos,
Jhonny Vargas P.




"Rookie" escribió en el mensaje
news:
> Intento hacer una consulta que me devuelva los valores entre dos fechas,
he
> logrado buscar >= Fecha1 (pero me busca mes/dia/año) y necesito
especificarle
> que sea (dd/mm/aaaa)
> este es mi codigo:
> strSQL = "SELECT DocNum, DocDate, CardCode, CardName, Convert(
float(12),
> VatSum, 1) as ITBM, Convert( float(12), DocTotal, 1) as Total, (DocTotal -
> VatSum ) as SubTotal, (sELECT Sum(DocTotal) FROM [OPCH])as GranTotal From
> OPCH "&_
> "WHERE DocNum >="& s_DocNum &" and DocNum <="& s_DocNum2 &" and
DocDate
> >= " & "'" & s_DocDate & "'" and DocDate <= " & "'" & s_DocDate2 & "'"
>
> me lanza un mensaje de error
>
>



Respuesta Responder a este mensaje
#3 Jhonny Vargas P. [MVP]
05/10/2004 - 16:44 | Informe spam
Cambialas de posicion...

Ejemplo

Fecha = Request("Fecha")
Fecha2 = Request("Fecha2")


strSQL = "Select * from table where Fecha Between '" & _
FormatearFecha(Fecha) & "' And '" & _
FormatearFecha(Fecha2) & "'"


'Funcion para SQL Server
Function FormatearFecha(Byval Fecha)
'Fecha viene en formato dd/mm/yyyy
'Salida = yyyymmdd
FormatearFecha = Mid(Fecha, 7, 4) & Mid(Fecha, 4, 2) & Mid(Fecha, 1, 2)
End Function


'Funcion para Access
Function FormatearFecha(Byval Fecha)
'Fecha viene en formato dd/mm/yyyy
'Salida = yyyy/mm/dd
FormatearFecha = Mid(Fecha, 7, 4) & "/" & Mid(Fecha, 4, 2) & "/" &
Mid(Fecha, 1, 2)
End Function


Saludos,
Jhonny Vargas P.

"Rookie" escribió en el mensaje
news:
El problema es que la fecha la toma de la url:
www.misitio.com?Fecha/01/2004&Fecha21/01/2004

estas fechas se guardan en una variable, la consulta toma la variable y la
utiliza en la consulta, pero me la lee como mes/dia/año


"Jhonny Vargas P. [MVP]" wrote:

> para SQL Utiliza el formato 'yyyymmdd'
> strSQL = "Select * from table where Fecha Between '20040520' And


'20040620'
> "
>
> para Access utiliza el formato 'yyyy/mm/dd'
> strSQL = "Select * from table where Fecha Between '20040520' And


'20040620'
> "
>
>
> Saludos,
> Jhonny Vargas P.
>
>
>
>
> "Rookie" escribió en el mensaje
> news:
> > Intento hacer una consulta que me devuelva los valores entre dos


fechas,
> he
> > logrado buscar >= Fecha1 (pero me busca mes/dia/año) y necesito
> especificarle
> > que sea (dd/mm/aaaa)
> > este es mi codigo:
> > strSQL = "SELECT DocNum, DocDate, CardCode, CardName, Convert(
> float(12),
> > VatSum, 1) as ITBM, Convert( float(12), DocTotal, 1) as Total, (DocTot


al -
> > VatSum ) as SubTotal, (sELECT Sum(DocTotal) FROM [OPCH])as GranTotal


From
> > OPCH "&_
> > "WHERE DocNum >="& s_DocNum &" and DocNum <="& s_DocNum2 &" and
> DocDate
> > >= " & "'" & s_DocDate & "'" and DocDate <= " & "'" & s_DocDate2 &


"'"
> >
> > me lanza un mensaje de error
> >
> >
>
>
>
Respuesta Responder a este mensaje
#4 Diego S.
05/10/2004 - 19:54 | Informe spam
Siempre conviene realizar lo siguiente

www.misitio.com?Fecha/01/2004&Fecha21/01/2004

Suponete que tenes que almacenar una fecha en la base
(Siguiendo tu ejemplo esa fecha la pueder tomar asi:

Fecha= request.QueryString("Fecha")

Como muy bien dijo Johnny Vargas, realiza una funcion, pero en vez de tomar
el MID y/o el rigth y left hace lo siguiente

Public Function FechaABase(ByRef strFecha)
If isDate(strFecha) Then
FechaABase= chr(39) & year(strfecha) &"/"& right("0" & month(strfecha),2)
& "/"& right("0" & day(strfecha),2) & chr(39)
Else
FechaAbAse = "null"
End If
End Function

Esta funcion, si recibe una fecha, te devuelve entre comillas simples la
fecha es decir que la almacenas tal cual.
Y si no es una fecha te ingresa un NULL en ese campo de la base.

Es mejor asi porque
1. El dia de mañana te pasas la base de Access a SQL y todo el tema de la
fechas recae en modificar una sola funcion
2. Si tomas el mid, left o rigth, puede que el sistema no esté configurado
en español , entonces te muestra mm/dd/aaaa y sino te muestra dd/mm/aaaa,
entonces si tomas el right o left te puedes hacer un lio terrible.
3 porque lo digo yo Jajjaa







"Rookie" wrote in message
news:
Intento hacer una consulta que me devuelva los valores entre dos fechas,


he
logrado buscar >= Fecha1 (pero me busca mes/dia/año) y necesito


especificarle
que sea (dd/mm/aaaa)
este es mi codigo:
strSQL = "SELECT DocNum, DocDate, CardCode, CardName, Convert(


float(12),
VatSum, 1) as ITBM, Convert( float(12), DocTotal, 1) as Total, (DocTotal -
VatSum ) as SubTotal, (sELECT Sum(DocTotal) FROM [OPCH])as GranTotal From
OPCH "&_
"WHERE DocNum >="& s_DocNum &" and DocNum <="& s_DocNum2 &" and


DocDate
>= " & "'" & s_DocDate & "'" and DocDate <= " & "'" & s_DocDate2 & "'"

me lanza un mensaje de error


Respuesta Responder a este mensaje
#5 Fabian Silva
06/10/2004 - 05:42 | Informe spam
Que buena funcion eso de usar el right mandandole un 0 para tomar datos de
tiempo, genial diego te pasas!
right("0" & day(now()),2)
no se me habia ocurrido algo asi, si es que todo el mundo lo sabe.. eran
todos menos yo je :) saludos a todos.

Fabian Silva.

"Diego S." escribió en el mensaje
news:
Siempre conviene realizar lo siguiente

www.misitio.com?Fecha/01/2004&Fecha21/01/2004

Suponete que tenes que almacenar una fecha en la base
(Siguiendo tu ejemplo esa fecha la pueder tomar asi:

Fecha= request.QueryString("Fecha")
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida