Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Juntar fecha y hora para consulta SQL (https://www.clubdelphi.com/foros/showthread.php?t=40577)

Iuconlas 21-02-2007 10:33:52

Juntar fecha y hora para consulta SQL
 
Hola,

Necesito realizar una consulta sql donde me filtre por una fecha determinada. El problema es que tengo 2 campos, donde uno guardo dia/mes/año y el otro guarda la hora (hh:mm:ss) y necesito compararlo con otro se guarda en formato fecha (dia/mes/año hh:mm:ss). El problema es que no se como juntar los 2 campos anteriores para poderlo comparar.

La consulta sql debería ser algo así:

Código SQL [-]
select * from tabla where Fech+Hora = FechaCompleta

Gracias de antemano.
Un saludo.

fdelamo 21-02-2007 10:48:41

No se si se podrá ...

pero prueba a hacer un cast, primero de la fecha y la hora, juntandolas en un varchar, y luego la cadena resultante como una fecha

Iuconlas 21-02-2007 11:11:17

Hola,
gracias por la pronta respuesta.

He probado con la siguiente sql (dudo mucho que funcione correctamente):
Código SQL [-]
select * from cabvent
where
clicve = :cliente and
totalcve = :ImpVen and
feccve = cast((cast(:fecha as varchar) + cast(:hora as varchar)) as datetime)

la sql procede de un listado y las variables con los dos puntos delante son los parametros que proceden de otra query.
No funciona, me da error el QrDesign de "Invalid use of keyword. Token: ) . Line number: 5"

Gracias.

Iuconlas 21-02-2007 11:36:14

También he probado con lo siguiente pero sigue sin funcionar:

Código SQL [-]
select * from cabvent
where
extract(year from feccve) = extract(year from :fecha) and
extract(month from feccve) = extract(month from :fecha) and
extract(day from feccve) = extract(day from :fecha) and
extract(hour from feccve) = extract(hour from :hora) and
extract(minute from feccve) = extract(minute from :hora) and
extract(second from feccve) = extract(second from :hora)


aparece un mensaje de error "Type mismatch in expression"

fdelamo 21-02-2007 11:39:14

Por cierto ... ¿que motor estás usando?, si usas Interbase/Firebird siempre se puede hacer una UDF (librería de funciones)

Iuconlas 21-02-2007 11:54:43

Estoy usando una base de datos un "poco" arcaica. Son tablas paradox 7, con el bdeadmin. :eek: (esto es así porque es de una aplicación externa).

fdelamo 21-02-2007 12:16:40

La verdad es que con Paradox no hecho casi nada, no se las funciones que tiene ...

Aunque se me ocurre otra cosa ... ¿si haces el cast de ambas cosas a varchar?, quizá así los puedas comparar


La franja horaria es GMT +2. Ahora son las 00:09:35.

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