Use la cláusula Where en el campo de fecha usando PostgreSQL
Este tutorial nos enseñará a realizar la consulta DÓNDE en el campo fecha. Existen varios formatos de representación de fecha; generalmente, regresa como una cadena o varchar.
A veces se produce el error de formato. Todo lo que necesita hacer es usar cast() para convertir la columna como un tipo de fecha y luego usarla dentro de la cláusula where.
Use la cláusula WHERE en el campo Date usando PostgreSQL
Supongamos que tiene una tabla de Usuarios y tiene un campo que contiene fecha.
create table Users (
id INT PRIMARY KEY,
full_name VARCHAR(50),
email VARCHAR(50),
register DATE
);
insert into Users (id, full_name, email, register)
values
( 1, 'Trula', '[email protected]', '2022-06-17'),
( 2, 'Ansel', '[email protected]', '2022-06-18'),
( 3, 'Baillie', '[email protected]', '2022-06-18'),
( 4, 'Lay', '[email protected]', '2021-11-23'),
( 5, 'Berton', '[email protected]', '2021-12-05'),
( 6, 'Malory', '[email protected]', '2022-01-31'),
( 7, 'Fernanda', '[email protected]', '2021-11-26'),
( 8, 'Hester', '[email protected]', '2022-03-13'),
( 9, 'Ced', '[email protected]', '2021-09-18'),
( 10, 'Tommy', '[email protected]', '2022-04-05');
select* from Users;
Producción :
id | full_name | email | register
----+-----------+----------------------------+------------
1 | Trula | [email protected] | 2022-06-17
2 | Ansel | [email protected] | 2022-06-18
3 | Baillie | [email protected] | 2022-06-18
4 | Lay | [email protected] | 2021-11-23
5 | Berton | [email protected] | 2021-12-05
6 | Malory | [email protected] | 2022-01-31
7 | Fernanda | [email protected] | 2021-11-26
8 | Hester | [email protected] | 2022-03-13
9 | Ced | [email protected] | 2021-09-18
10 | Tommy | [email protected] | 2022-04-05
(10 rows)
Digamos que queremos ver un usuario que se registró el 17/06/22, pero el problema es que no es el formato correcto para buscar en el campo de tipo fecha.
Entonces necesitamos convertirlo al formato ISO-8601, por lo que el equivalente del formato ISO-8601 será 2022-06-17. Aquí está la consulta para buscar:
SELECT *
FROM USERS
WHERE register::date = '2022-06-17';
Producción :
id | full_name | email | register
----+-----------+----------------------------+------------
1 | Trula | [email protected] | 2022-06-17
(1 row)
Además, puedes probar más funciones desde el tipo fecha. Por ejemplo, la función date_trunc.
SELECT * FROM USERS WHERE date_trunc('day', register) = '2022-06-17';
Producción :
id | full_name | email | register
----+-----------+----------------------------+------------
1 | Trula | [email protected] | 2022-06-17
(1 row)
Aquí hay otra consulta de ejemplo:
SELECT * FROM USERS WHERE date_trunc('month', register) = '2022-06-17';
Producción :
id | full_name | email | register
----+-----------+-------+----------
(0 rows)s
Para saber más sobre la fecha en Postgres, visite la documentación oficial.
