Hola,
Para filtrar por rango de fecha en una consulta estoy haciendo algo como:
oQry += "WHERE cIdDocumentoDe IN (4,5) "
oQry += 'AND cFecha BETWEEN "20180405" AND "20180405" '
oQry += "ORDER BY Factura"
Obtengo error en la consulta, pero es por el tema de la fecha, si omito esa línea funciona bien la consulta.
Alguna ayuda acerca de cómo puedo indicar la fecha correctamente?, como comentario tal cual está la consulta funciona en el SQL Management Studio.
Gracias.
Saludos,
Javier
Uso de fechas en consulta SQL / MS-SQL
Moderator: Rathinagiri
- dragancesu
- Posts: 921
- Joined: Mon Jun 24, 2013 11:53 am
- DBs Used: DBF, MySQL, Oracle
- Location: Subotica, Serbia
Re: Uso de fechas en consulta SQL / MS-SQL
Jparada uso esta funcion que me regresa un string con la fecha lista para usar en los querys de mysql
function cdate2mysqldate
parameters mfdate
local mfecreturn:=" - - "
if valtype(mfdate) = 'D'
mfecreturn:=str(year(mfdate),4,0) + '-' + strzero(month(mfdate),2) + '-' + strzero(day(mfdate),2)
else
if valtype(mfdate) = 'C'
mfdate:=ctod(mfdate)
mfecreturn:=str(year(mfdate),4,0) + '-' + strzero(month(mfdate),2) + '-' + strzero(day(mfdate),2)
endif
endif
return(mfecreturn)
espero que sea lo que necesitas
saludos
function cdate2mysqldate
parameters mfdate
local mfecreturn:=" - - "
if valtype(mfdate) = 'D'
mfecreturn:=str(year(mfdate),4,0) + '-' + strzero(month(mfdate),2) + '-' + strzero(day(mfdate),2)
else
if valtype(mfdate) = 'C'
mfdate:=ctod(mfdate)
mfecreturn:=str(year(mfdate),4,0) + '-' + strzero(month(mfdate),2) + '-' + strzero(day(mfdate),2)
endif
endif
return(mfecreturn)
espero que sea lo que necesitas
saludos
Re: Uso de fechas en consulta SQL / MS-SQL
Hola,
Gracias por contestar, como comenta martín con una función parecida funcionó:
Pero también quería hacer pruebas con el string y basándome en esa función; funcionó como yo necesitaba:
Saludos,
Javier
Gracias por contestar, como comenta martín con una función parecida funcionó:
Code: Select all
function DateToSQL( dFecha )
result := "'" + StrZero( month(dFecha),2) + '/'
result += StrZero( day(dFecha),2) + '/'
result += StrZero( Year(dFecha),4) + "'"
return result
Code: Select all
oQry += "WHERE cIdDocumentoDe IN (4,5) "
oQry += "AND cFecha BETWEEN " + "'" + "20180405" + "'" + " "
oQry += "AND " + "'" + "20180405" + "'" + " "
Javier