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', 'ttawse0@washingtonpost.com', '2022-06-17'),
( 2, 'Ansel', 'acotter1@friendfeed.com', '2022-06-18'),
( 3, 'Baillie', 'bgloves2@squidoo.com', '2022-06-18'),
( 4, 'Lay', 'lforsythe3@digg.com', '2021-11-23'),
( 5, 'Berton', 'bfowley4@myspace.com', '2021-12-05'),
( 6, 'Malory', 'mflack5@salon.com', '2022-01-31'),
( 7, 'Fernanda', 'fianson6@meetup.com', '2021-11-26'),
( 8, 'Hester', 'hshyram7@uiuc.edu', '2022-03-13'),
( 9, 'Ced', 'cmorsey8@goo.gl', '2021-09-18'),
( 10, 'Tommy', 'tleipoldt9@sbwire.com', '2022-04-05');

select* from Users;

Producción :

 id | full_name |           email            |  register
----+-----------+----------------------------+------------
  1 | Trula     | ttawse0@washingtonpost.com | 2022-06-17
  2 | Ansel     | acotter1@friendfeed.com    | 2022-06-18
  3 | Baillie   | bgloves2@squidoo.com       | 2022-06-18
  4 | Lay       | lforsythe3@digg.com        | 2021-11-23
  5 | Berton    | bfowley4@myspace.com       | 2021-12-05
  6 | Malory    | mflack5@salon.com          | 2022-01-31
  7 | Fernanda  | fianson6@meetup.com        | 2021-11-26
  8 | Hester    | hshyram7@uiuc.edu          | 2022-03-13
  9 | Ced       | cmorsey8@goo.gl            | 2021-09-18
 10 | Tommy     | tleipoldt9@sbwire.com      | 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     | ttawse0@washingtonpost.com | 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     | ttawse0@washingtonpost.com | 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