Uso de fechas en consulta SQL / MS-SQL

HMG en Español

Moderator: Rathinagiri

Post Reply
jparada
Posts: 430
Joined: Fri Jan 23, 2009 5:18 pm

Uso de fechas en consulta SQL / MS-SQL

Post by jparada »

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
User avatar
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

Post by dragancesu »

martingz
Posts: 395
Joined: Wed Nov 18, 2009 11:14 pm
Location: Mexico

Re: Uso de fechas en consulta SQL / MS-SQL

Post by martingz »

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
jparada
Posts: 430
Joined: Fri Jan 23, 2009 5:18 pm

Re: Uso de fechas en consulta SQL / MS-SQL

Post by jparada »

Hola,

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
Pero también quería hacer pruebas con el string y basándome en esa función; funcionó como yo necesitaba:

Code: Select all

oQry += "WHERE cIdDocumentoDe IN (4,5) "
oQry += "AND cFecha BETWEEN " + "'" + "20180405" + "'" + " "
oQry += "AND " + "'" + "20180405" + "'" + " "
Saludos,
Javier
Post Reply