In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Manejo de fechas en Querys para SQLite

Foro público de Xailer en español
Responder
MarioDavalos
Mensajes: 5
Registrado: Jue Abr 14, 2011 9:27 pm

Manejo de fechas en Querys para SQLite

Mensaje por MarioDavalos »

Hola a todos,
Tengo un rato buscando la manera de hacer una query en SQLite con manejo de
fechas.
La query es la siguiente:
select TipoDocumento, origen, OriSerie, OriConsec, orifecha, orihora,
Status_Documento, profecha, prohora, uuid, cliente_nombre AS Nombre,
cliente_rfc AS RFC,"MPX" as Moneda, (CASE WHEN status_documento =
"CANCELADO" and tipodocumento IN("FAC","NCG","RHO","RAR") THEN
(select -1*importe from controlfacturas b where b.OriSerie = a.OriSerie and
b.OriConsec = a.OriConsec and b.Importe != 0 and b.origen=a.origen) WHEN
status_documento = "CANCELADO" and tipodocumento = "NCD" THEN (select
importe from controlfacturas b where b.OriSerie = a.OriSerie and b.OriConsec
= a.OriConsec and b.Importe != 0 and b.origen=a.origen) WHEN tipodocumento
IN("FAC","NCG","RHO","RAR") THEN importe WHEN tipodocumento = "NCD" THEN
importe*-1 END) from controlfacturas a where
julianday("20"||dtoc(profecha)) >= julianday("2011-09-01") and
julianday("20"||dtoc(profecha)) < julianday("2011-10-06") and status = 'P'
Lo curioso del caso es que si esta query la corro directamente en el
ejecutor de consultas en SQLite Editor la resuelve bien, pero si esta misma
instrucción la ejecuto desde código (ya sea usando TSQLQuery o directamente
con el método QuerryArray() de TADODataSource) no resuelve bien la consulta,
después de varios monitoreós detecto que el detalle esta en la clausula
where, en concreto en las condiciones de fechas:
where julianday("20"||dtoc(profecha)) >= julianday("2011-09-01") and
julianday("20"||dtoc(profecha)) < julianday("2011-10-06") and status = 'P'
Me pueden apoyar indicándome cual serí­a la forma correcta de manejar
fechas...
Agradezco de antemano la valiosa información que me puedan aportar.
Saludos,
Mario Dávalos
P.D. julianday("20"||dtoc(profecha)), que raro se ve esto, pero fue la única
forma que me resolvió correctamente en SQLite Editor.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Manejo de fechas en Querys para SQLite

Mensaje por jfgimenez »

Mario,
> where julianday("20"||dtoc(profecha)) >= julianday("2011-09-01") and
> julianday("20"||dtoc(profecha)) < julianday("2011-10-06") and status
> = 'P'
where profecha >= "2011-09-01" and profecha < "2011-10-06" and status = 'P'
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Manejo de fechas en Querys para SQLite

Mensaje por jfgimenez »

Mario,
perdona, me he equivocado. Hay que cambiar las comillas dobles por simples:
> where profecha >= "2011-09-01" and profecha < "2011-10-06" and status
> = 'P'
where profecha >= '2011-09-01' and profecha < '2011-10-06' and
status = 'P'
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
MarioDavalos
Mensajes: 5
Registrado: Jue Abr 14, 2011 9:27 pm

Manejo de fechas en Querys para SQLite

Mensaje por MarioDavalos »

Gracias José, creo que me empecé a confundir con el formato de la fecha y el
uso de comillas simples y dobles...
Pero que bueno que sea mas simple la solución.
Saludos,
"Jose F. Gimenez" escribió en el mensaje de
noticias:4e8d75f1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Mario,
perdona, me he equivocado. Hay que cambiar las comillas dobles por simples:
> where profecha >= "2011-09-01" and profecha < "2011-10-06" and status =
> 'P'
where profecha >= '2011-09-01' and profecha < '2011-10-06' and
status = 'P'
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Responder