Use la cláusula Where en el campo de fecha usando PostgreSQL

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.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website