Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Buscar con campos DATE (https://www.clubdelphi.com/foros/showthread.php?t=16405)

sur-se 26-11-2004 11:58:38

Buscar con campos DATE
 
Hola. Tengo una tabla en Firebird v1.5 que posee un campo fecha que almacena la fecha y la hora.
El problema es que quiero hacer una consulta SQL para obtener todos los registros de una fecha concreta independientemente de la hora, pero no devuelve nada.
Código:

select * from mensajes where fecha = "11/25/04"
donde el campo fecha almacena fecha y hora.
He probado con:
Código:

select * from mensajes where CAST(fecha as DATE) = "11/25/04"
pero tampoco funciona. No devuelve los registros de ese día.
¿Como puedo hacer para que me compare sólo la fecha con independencia de la hora almacenada en el mismo campo?
Salu2.

sur-se 26-11-2004 12:21:28

Solucionado
 
Nada. Ya encontré el problema. Es que tengo la base de datos con el dialecto 1 y por eso no funciona ya que no existe el DATE. Quizás debería cambiarme al dialecto 3. ¿Alguien sabe que problemas podría darme cambiar el dialecto de la base de datos al 3?
Gracias.

fredo 26-11-2004 12:45:30

yo tambien la tengo en dialecto 1
 
provaste con

select * from mensajes where fecha = '11/25/04'
...

sur-se 29-11-2004 09:02:52

Si, eso funciona siempre que la hora no haya sido almacenada, es decir, si defino el campo de tipo fecha y cuando guardo el dato en el campo no especifico la hora, entonces lo que comentas funciona perfectamente. El problema está cuando se especifica fecha y hora y se almacenan ambos datos en el mismo campo. Entonces ya no funciona. De todas formas, como sólo me ocurre en una tabla concreta para una cosa particular poco importante, puedo hacer la comparación extrayendo del campo fecha el mes el día y el año de forma independiente y comparándola con la fecha a buscar. Lo he probado y así funciona bien.
Salu2.

fredo 29-11-2004 12:51:20

y con :

select * from mensajes where fecha between '11/25/04 00:00:00' to '11/25/04 23:59:59'


La franja horaria es GMT +2. Ahora son las 09:25:01.

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