PostgreSQL을 사용하여 날짜 필드에 Where 절 사용
Shihab Sikder
2023년6월20일
이 자습서에서는 날짜
필드에서 WHERE
쿼리를 수행하는 방법을 알려줍니다. 날짜
표현에는 여러 가지 형식이 있습니다. 일반적으로 문자열
또는 varchar
로 반환됩니다.
때때로 형식 오류가 발생합니다. cast()
를 사용하여 열을 날짜
유형으로 캐스팅한 다음 where
절 내에서 사용하기만 하면 됩니다.
PostgreSQL을 사용하여 Date
필드에 WHERE
절 사용
사용자
테이블이 있고 날짜
를 포함하는 필드가 있다고 가정해 보겠습니다.
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;
출력:
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)
17/06/22
에 등록한 사용자를 보고 싶지만 문제는 날짜
유형 필드에서 검색할 올바른 형식이 아니라는 것입니다.
따라서 ISO-8601
형식으로 변환해야 하므로 ISO-8601
형식에 해당하는 형식은 2022-06-17
이 됩니다. 검색할 쿼리는 다음과 같습니다.
SELECT *
FROM USERS
WHERE register::date = '2022-06-17';
출력:
id | full_name | email | register
----+-----------+----------------------------+------------
1 | Trula | ttawse0@washingtonpost.com | 2022-06-17
(1 row)
또한 날짜
유형에서 더 많은 기능을 시도할 수 있습니다. 예를 들어, date_trunc
기능.
SELECT * FROM USERS WHERE date_trunc('day', register) = '2022-06-17';
출력:
id | full_name | email | register
----+-----------+----------------------------+------------
1 | Trula | ttawse0@washingtonpost.com | 2022-06-17
(1 row)
다음은 또 다른 예제 쿼리입니다.
SELECT * FROM USERS WHERE date_trunc('month', register) = '2022-06-17';
출력:
id | full_name | email | register
----+-----------+-------+----------
(0 rows)s
Postgres의 날짜
에 대해 자세히 알아보려면 공식 문서를 방문하세요.
작가: Shihab Sikder