Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2012
karocs karocs is offline
Miembro
 
Registrado: jul 2004
Posts: 143
Poder: 20
karocs Va por buen camino
Unhappy Fechas en interbase

Buenos dias.

Como estan ? tengo el siguiente inconveniente, tengo un campo declarado como date en una tabla de interbase pero cuando hago una consulta por este campo me omite ciertos registros, es como si tuviera en cuenta la hora tambien, le coloco un striptime pero hace los procesos muy lentos.

Hay alguna otra forma de asegurar que solo consulte por la fecha para quitarle el striptime. Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 09-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, a falta de ver tu código, en principio es así, si el dialecto usado es el 1, entonces los campos date tienen fecha y hora.
Si usaras el dialecto 3, entonces tienes los tipos date, time y timestamp (fecha, hora y fechahora)
En dialecto 1 sólo está el date que juntan fecha y hora, y que corresponde al timestamp del dialecto 3.
Cuando hagas consulta entre fechas, en tu caso, tendrás que añadir horas, desde las '00:00' hasta las '23:59'
Responder Con Cita
  #3  
Antiguo 11-05-2012
karocs karocs is offline
Miembro
 
Registrado: jul 2004
Posts: 143
Poder: 20
karocs Va por buen camino
Smile

Holaa.

mil gracias por aclaracion
Responder Con Cita
  #4  
Antiguo 12-05-2012
[birmain] birmain is offline
Miembro Premium
 
Registrado: feb 2005
Ubicación: Albacete - España
Posts: 49
Poder: 0
birmain Va por buen camino
Consultas de fecha en campos timestamp

Existe la posibilidad de consultar solo la fecha en un campo timestamp. Si FVERIFICACION asumimos que es timestamp, todas estas sentencias son válidas:

Código SQL [-]

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) = '01.10.2010')

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) between '01.10.2010' and '01.10.2011')

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) between :LIFECHA and :LSFECHA)

-- a LIFECHA  y LSFECHA se le pueden pasar parámetros del tipo Date
Responder Con Cita
  #5  
Antiguo 12-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por supuesto, si no necesitamos la hora entonces podemos olvidarnos de esa parte y no habrá ningún problema, ya que si hacemos una consulta entre fechas, nos da igual la hora.
Responder Con Cita
  #6  
Antiguo 12-05-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
Cita:

Código SQL [-]

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) = '01.10.2010')

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) between '01.10.2010' and '01.10.2011')

select a.*
from albaranes_cab a
where (cast(a.fverificacion as date) between :LIFECHA and :LSFECHA)

-- a LIFECHA  y LSFECHA se le pueden pasar parámetros del tipo Date
El problema de estas consultas es que no utilizaran indices y con grandes volúmenes de datos serán lentas, ya que el acceso será secuencial.

Saludos
__________________
Un saludo, Jesus García
Responder Con Cita
  #7  
Antiguo 12-05-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por cointec Ver Mensaje
El problema de estas consultas es que no utilizaran indices y con grandes volúmenes de datos serán lentas, ya que el acceso será secuencial.

Saludos
En realidad estas consultas también pueden ser perfectamente optimizadas por índices.

Solo tienes que crear un índice sobre una expresión, en concreto sobre la expresión : cast(a.fverificacion as date)

Saludos
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 15-05-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
Interbase soporta expresiones en indices? A partir de que versión?
__________________
Un saludo, Jesus García
Responder Con Cita
  #9  
Antiguo 16-05-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por cointec Ver Mensaje
Interbase soporta expresiones en indices? A partir de que versión?
Firebird lo soporta, desde hace muchos años (a partir de Firebird 2.0).

Interbase no sé si lo soporta.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Fechas en Interbase canelita SQL 1 27-08-2007 19:23:21
Fechas en interbase karocs Firebird e Interbase 3 06-08-2007 18:15:27
Fechas en Interbase RolphyReyes Firebird e Interbase 1 13-06-2007 20:59:04
fechas en interbase jzginez Firebird e Interbase 2 23-05-2006 20:08:33
Fechas en Interbase raugadel Firebird e Interbase 2 29-01-2004 10:53:43


La franja horaria es GMT +2. Ahora son las 21:44:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi