programing

지난 10일의 날짜가 포함된 기록을 나열하는 방법은 무엇입니까?

newstyles 2023. 5. 14. 10:27

지난 10일의 날짜가 포함된 기록을 나열하는 방법은 무엇입니까?

SELECT Table.date FROM Table WHERE date > current_date - 10;

이것이 PostgreSQL에서 작동합니까?

예, PostgreSQL에서 작동합니다("날짜" 열이 데이터 유형이라고 가정).date그냥 해보는 게 어때요?

표준 ANSI SQL 형식은 다음과 같습니다.

SELECT Table.date 
FROM Table 
WHERE date > current_date - interval '10' day;

저는 그 형식이 읽기 쉽기 때문에 그 형식을 선호합니다(그러나 그것은 다음과 같습니다).current_date - 10).

http://www.postgresql.org/docs/current/static/functions-datetime.html 에서는 날짜 및 시간(및 간격) 작업에 사용할 수 있는 연산자를 보여 줍니다.

그래서 당신은 원합니다.

SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');

위의 연산자/함수는 다음과 같이 상세히 문서화되어 있습니다.

테스트(및 Postgre)를 통해 이해했습니다.SQL dox)는 견적이 다른 답변과 다르게 수행되어야 하며 다음과 같은 "일"도 포함되어야 한다는 것입니다.

SELECT Table.date
  FROM Table 
  WHERE date > current_date - interval '10 day';

여기에 설명되어 있습니다(모든 Postgres DB에서 이를 실행할 수 있어야 함).

SELECT DISTINCT current_date, 
                current_date - interval '10' day, 
                current_date - interval '10 days' 
  FROM pg_language;

결과:

2013-03-01  2013-03-01 00:00:00 2013-02-19 00:00:00

제안된 답은 이미 문제를 해결하는 것처럼 보입니다.그러나 추가로 Postgre의 NOW() 기능을 사용할 것을 제안합니다.SQL.

SELECT Table.date 
FROM Table 
WHERE date > now() - interval '10' day;

또한 정말 편리한 시간대를 지정할 수도 있습니다.

NOW () AT TIME ZONE 'Europe/Paris'

Postgres 9.4부터는 AGE 기능을 사용할 수 있습니다.

SELECT Table.date FROM Table WHERE AGE(Table.date) <= INTERVAL '10 day';

현재 날짜가 아닌 특정 날짜로 작업하려는 경우 쿼리를 일반화합니다.

SELECT Table.date
  FROM Table 
  WHERE Table.date > '2020-01-01'::date - interval '10 day'

데이터 유형을 확인하겠습니다.

current_date에는 "날짜" 데이터 유형이 있고, 10은 숫자이며, Table.date에는 테이블을 확인해야 합니다.

다음 사이에도 사용할 수 있습니다.

SELECT Table.date
  FROM Table 
  WHERE date between current_date and current_date - interval '10 day';

언급URL : https://stackoverflow.com/questions/5465484/how-to-list-records-with-date-from-the-last-10-days