(03-05-2021, 17:27)Desoljor escribió: no he encontrado es la forma de comparar la fecha de la BDD con una fecha que le proporcione el usuario.
por ejemplo, como encontrar los empleados que se han dado de alta en una empresa desde el 01/01/2000 hasta el 31/12/2020.
[b]PostgreSQL[/b]
[code]
[b]Tabla de ejemplo en sqlite[/b]
[code]BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "users" (
"id" INTEGER,
"name" TEXT UNIQUE,
"born" NUMERIC,
PRIMARY KEY("id" AUTOINCREMENT)
);
INSERT INTO "users" VALUES (1,'Usuario1','1991-01-01');
INSERT INTO "users" VALUES (2,'usuario2','1992-02-02');
INSERT INTO "users" VALUES (3,'usuario3','1993-03-03');
INSERT INTO "users" VALUES (4,'usuario4','1994-04-04');
INSERT INTO "users" VALUES (5,'usuario5','1995-05-05');
COMMIT;
(03-05-2021, 20:41)tincho escribió: Saludos
(03-05-2021, 20:41)Desoljor escribió: El problema realmente no está en postgres, de todas maneras da lo mismo el motor de base de datos, Sql es Sql en Mysql o en postgresql.
No digo que el problema esté en postgres, digo que tienes que conocer cómo maneja postres las fechas. Sql no es Sql en cualquier base de datos. Todas tienen su peculiaridades y sus dialectos. Por ejemplo, Sqlite no funciona con tipos de datos, sino con afinidad de conversión de los tipos de datos... y todo lo almacena en el disco como texto.
Si yo cojo y ejecuto esta sentencia desde PgMyadmin (entorno grafico de postgres) directamente funciona perfetamente, pero al pasarla a Gambas es donde Falla.
La clave de esto es "entorno gráfico" es decir PgMyadmin hace conversiones de los datos de la BD a tu pantalla, localización geográfica, etc. etc. según qué y cómo se lo plantees. Gambas hace sus propias conversiones según sus propios tipos de datos y tus consultas deben adecuarse a eso.
"Select * From " usuarios " where nacimiento >= '01/01/1900' And nacimiento <= '31/12/1986' And sexo = 'H'"
En esta sentencia le doy una fecha establecida por mi, pero cuando el año de la fecha se obtiene por formulario ya no funciona
No, en esta sentencia le das una cadena de texto y pgMyadmin hace las reconversiones pertinentes. Gambas hace las suyas propias. No te puedo precisar más porque, insisto, no conozco postgre, pero a poco que busques tienes páginas que te pueden orientar, como ésta: https://code.i-harness.com/es/docs/postg...s-datetime
Saludos
fecha timestamp without time zone
Parte del SQL Funciones es un Archivo de Modulo, tú puede crearlo donde quieras y llamarlo como quieras.....& Funciones.FechaHora(Now()) & ","....
PUBLIC FUNCTION FechaHora(Fecha AS Date) AS String
RETURN "('" & Format$(Fecha, "yyyy-mm-dd hh:nn:ss") & "')"
END
Parte del SQL ....& Funciones.FechaHora(TextBoxFecha.Text) & ","....
Date(tu_campo_fecha) >= ('" & Format$(lafecha, "yyyy-mm-dd") & "')
Date(tu_campo_fecha) >= " & Fecha(lafecha) &