PostgreSQL - Problema SELECT

 
Vista:

Problema SELECT

Publicado por marcela (6 intervenciones) el 28/04/2005 17:22:06
Hola a todos. Alguien me puede ayudar, estoy haciendo un sistema con lenguaje Visual Basic 6.0 y base de datos PostgreSQL. La conexión es a traves de ODBC. Necesito realizar consultas donde la condición es en función de un campo fecha. La pregunta es, como se escribe la condición where si la fecha es una determinada o bien si el campo es nulo.
Ya prove con:
1) "select idlibro, fechaBaja from Libros where isnull(fechaBaja)" o
2) "select idlibro, fechaBaja from Libros where fechaBaja='27/04/2005' "
Ninguna de las dos funciono. Gracias a quien pueda ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema SELECT

Publicado por diego (3 intervenciones) el 29/04/2005 17:30:29
Mira primero siempre acostumbro a usar consultas con el standar para las fechas el cual es
yyyy-mm-dd hh:mm:ss
2005-04-28 22:58:35

este formato siempre me funciona en todos los motores como postgresql, mysql, acces sql server y todo va bien, de modo que tu select seria
para traer registros de tal forma que la fecha sea nulal

select idlibro, fechaBaja from Libros where fechaBaja is null

2)

select idlibro, fechaBaja from Libros where fechaBaja = '2005-04-27'

ten en cuenta que algunos motores con el select anterior te daran solo los registros que la hora sea las 12 00 00 por lo cual perderas registros
por ello es mejor hacer esto

select idlibro, fechaBaja from Libros where fechaBaja between '2005-04-27 00:00:00' and '2005-04-27 24:59:59' es decir el dia completo

lo anterior aplica para rangos de fecha




Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema SELECT

Publicado por Julio (334 intervenciones) el 29/04/2005 18:09:24
Para el primer ejemplo:
1.- select idlibro, fechaBaja from libros where fechaBaja is null; o select idlibro, fechaBaja from libros where fechaBaja is not null;
Cuando quieras recuperar solo cierto numero de filas en tu where debe ir tu condicion, limit numero_filas;
2.- Para el segundo caso si tu campo fechaBaja es de tipo date o timestamp, tienes que convertir tu cadena en el tipo de dato, ejemplo:
'27/05/2005' para convertirlo a tipo dato: to_date('27/05/2005','dd/mm/yyyy') prueba con doble comillas por si acaso..
es decir si tu campo es de tipo date seria lo siguiente:
select idlibro, fechaBaja from libros where fechaBaja = to_date('27/05/2005','dd/mm/yyyy');

Espero te haya servido en algo...
A ver que sale, si no te resulta, cambia la ' a "

Espero te haya servido, mas documentación:

http://www.postgresql.cl ---> Sitio en Español
http://www.postgresql.org ---> Sitio en ingles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema SELECT

Publicado por fingon (2 intervenciones) el 04/06/2005 00:11:06
hola,
primero, en postgresql no existe la funcion 'isnull(x,y)' por lo que puedes definir tu dicha funcion.
te cuento que tuve el mismo problema y lo arregle creando dicha funcion:
-------------------
CREATE OR REPLACE FUNCTION isnulldate(date, date)
RETURNS date AS
$BODY$
DECLARE
val_entrada ALIAS FOR $1;
val_defecto ALIAS FOR $2;
val_salida DATE;
BEGIN
IF val_entrada IS NULL THEN
val_salida := val_defecto;
ELSE
val_salida := val_entrada;
END IF;
RETURN val_salida;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION isnulldate(date, date) OWNER TO postgres;
-------------------
espero que te sirva
pd: esto es aplicable a numeros y char
chavela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar