[SQL] 날짜 범위와 PostgreSQL을 쿼리
SQL날짜 범위와 PostgreSQL을 쿼리
나는 날짜가 특정 월 및 연도에 어디 결과를 반환하는 내 PostgreSQL의 DB를 조회하려합니다. 즉 한 달 년에 대한 모든 값을 부탁합니다.
내가 지금까지 그것을 할 수 있었던 유일한 방법은 다음과 같이이다 :
SELECT user_id
FROM user_logs
WHERE login_date BETWEEN '2014-02-01' AND '2014-02-28'
이것에 문제는이 테이블을 쿼리 전에 첫 번째 날짜와 마지막 날짜를 계산해야한다는 것입니다. 이 작업을 수행하는 간단한 방법이 있나요?
감사
해결법
-
==============================
1.당신이> = 시작과 <끝 사용하는 경우 날짜 (및 시간)으로 많은 일들이 간단하게된다.
당신이> = 시작과 <끝 사용하는 경우 날짜 (및 시간)으로 많은 일들이 간단하게된다.
예를 들면 :
SELECT user_id FROM user_logs WHERE login_date >= '2014-02-01' AND login_date < '2014-03-01'
이 경우 당신은 여전히 당신이 필요로하는 달의 시작 날짜를 계산하기 위해 필요하지만, 그 방법의 수에 정직해야한다.
종료일은 단순화되고; 다만 정확히 한 달에 추가합니다. 28 일, 30 일, 31 일 등 약 없음의 간섭이 없습니다
이 구조는 인덱스의 사용을 유지할 수있는 장점이있다.
많은 사람들은 다음과 같은 형태를 제안 할 수 있지만 인덱스를 사용하지 마십시오
WHERE DATEPART('year', login_date) = 2014 AND DATEPART('month', login_date) = 2
이 일치하는 행의 범위 (A 범위-추구)를 찾기 위해 인덱스를 사용하여 (스캔) 테이블에있는 모든 단일 행의 조건을 계산하지 포함한다.
-
==============================
2.PostgreSQL의 9.2에서 범위 유형이 지원됩니다. 그래서 당신은이 같이 쓸 수 있습니다 :
PostgreSQL의 9.2에서 범위 유형이 지원됩니다. 그래서 당신은이 같이 쓸 수 있습니다 :
SELECT user_id FROM user_logs WHERE '[2014-02-01, 2014-03-01]'::daterange @> login_date
이 문자열 비교를보다 효율적이어야한다
-
==============================
3.그냥 여기 경우 누군가 땅에 ... 8.1 이후 당신은 간단하게 사용할 수 있습니다 :
그냥 여기 경우 누군가 땅에 ... 8.1 이후 당신은 간단하게 사용할 수 있습니다 :
SELECT user_id FROM user_logs WHERE login_date BETWEEN SYMMETRIC '2014-02-01' AND '2014-02-28'
워드 프로세서 :
-
==============================
4.설명서를 참조하십시오.
설명서를 참조하십시오.
http://www.postgresql.org/docs/9.1/static/functions-datetime.html
나는 그 같은 쿼리를 사용 :
WHERE ( date_trunc('day',table1.date_eval) = '2015-02-09' )
또는
WHERE(date_trunc('day',table1.date_eval) >='2015-02-09'AND date_trunc('day',table1.date_eval) <'2015-02-09')
Juanitos Ingenier.
from https://stackoverflow.com/questions/23335970/postgresql-query-between-date-ranges by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] id 필드에 다시 씨앗으로 길을 레일 (0) | 2020.06.21 |
---|---|
[SQL] SQL에서 여러 행을 삭제하는 방법 어디 ID = (X와 Y) (0) | 2020.06.21 |
[SQL] 최대 절전 모드 createSQlquery 결과에서 SQL 열 이름을 사용 (0) | 2020.06.21 |
[SQL] 십자가의 용도는 무엇을 가입입니까? (0) | 2020.06.21 |
[SQL] MS SQL 서버에 그들을 기존 테이블에 열을 추가하고 고유 번호를 (0) | 2020.06.21 |