![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Se me ocurre que podes probar algo como esto
Fec_Ini := QuotedStr(FormatDateTime('dd/mm/yyyy', Fec_Ini)+' 00:00:00'); Fec_Fin := QuotedStr(FormatDateTime('dd/mm/yyyy', Fec_Fin)+' 23:59:59'); Donde te quedaria con la fecha de hoy por ejemplo fechafactura >= '11/03/2010 00:00:00' fechafactura <= '11/03/2010 23:59:59' Incluso creo que deberia ser entre 00:00:01 y las 00:00:00 pero eso es algo que cada uno maneja y lo ve como quiere O hacer directamente esto Fec_Ini := QuotedStr(FormatDateTime('dd/mm/yyyy hh:mm:ss', Fec_Ini)); Fec_Fin := QuotedStr(FormatDateTime('dd/mm/yyyy hh:mm:ss', Fec_Fin)); Última edición por elarys fecha: 11-03-2010 a las 18:53:56. |
|
#2
|
|||
|
|||
|
Tienes un problema grave:
ya que la hora está siendo grabada como texto y en formato am/pm (para remate), resulta imposible comparar rangos de horas que crucen las 12:00 m, ejemplo: 06:33 AM es menor que 04:00 PM pero '06:33 AM' es MAYOR que '04:00 PM', ¿Como puede ser esto? Muy sencillo: se están comparando textos (que representan horas pero siguen siendo literales), es decir '0' es igual a '0', pero '06' es MAYOR que '04', sin importar lo que siga a continuación ni el significado que tenga para nosotros. Soluciones: 1.- Si tienes los fuentes del sistema en uso: (la más fácil) 1.1.- Cambia el formato de la hora grabada a 24 horas (04:00 PM = 16:00) 1.2.- Diseña una aplicación que recorra la tabla y actualice el campo con el nuevo formato. 1.3.- Usa el campo Hora para la consulta (en todo caso deberas hacer 3 clausulas): WHERE ... AND ((Fecha = :FechaInicial) AND (Hora >= :HoraInicial)) AND ((Fecha > :FechaInicial) AND (Fecha < :FechaFinal)) AND ((Fecha = :FechaFinal) AND (Hora<= :HoraFinal)) 2.- No tienes los fuentes del sistema en uso: (la menos fácil) 2.1.- Agrega un campo (a la tabla Facturas claro) tipo VARCHAR (05) y lo llamas Hora24 o algo así. 2.2.- Crea un Trigger para la tabla "Facturas" que actualice dicho campo con la hora en formato 24H basado en el campo hora que se usa actualmente. 2.3.- Usa el nuevo campo Hora24 para la consulta (en todo caso deberas hacer 3 clausulas): WHERE ... AND ((Fecha = :FechaInicial) AND (Hora24 >= :HoraInicial)) AND ((Fecha > :FechaInicial) AND (Fecha < :FechaFinal)) AND ((Fecha = :FechaFinal) AND (Hora24<= :HoraFinal)) Bueno, me cansé. Suerte... |
|
#3
|
|||
|
|||
|
Con el metodo de elarys resolvi la situacion... Gracias a todos!!!
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Consulta SQL con fecha y hora | vpepen | SQL | 0 | 10-12-2009 17:11:13 |
| Filtrar consulta por fecha y hora | Alejandrina | SQL | 4 | 16-06-2008 08:18:10 |
| Consulta MySQL con fecha y hora | Adrian Murua | SQL | 10 | 19-11-2007 05:32:08 |
| Juntar fecha y hora para consulta SQL | Iuconlas | SQL | 6 | 21-02-2007 12:16:40 |
| Error en consulta con fecha y hora. | Tecnic2 | SQL | 10 | 01-10-2005 01:35:25 |
|