programing

SQL Server에서 오늘부터 최근 30일간의 레코드 가져오기

muds 2023. 10. 18. 23:05
반응형

SQL Server에서 오늘부터 최근 30일간의 레코드 가져오기

SQL Server에 대해 간단한 질문이 있습니다. 이 테이블에서 최근 30일 정보를 가져오는 방법

샘플 데이터:

Product:

Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18

이 테이블 데이터를 바탕으로 아래와 같은 출력을 원합니다.

pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16

이 쿼리를 시도했습니다.

SELECT * 
FROM product 
WHERE pdate >= DATEADD(day, -30, getdate()).

하지만 지금은 정확한 결과를 주고 있습니다.SQL Server에서 이 문제를 해결하는 방법을 알려주시기 바랍니다.

조건 하나 더 추가where clause

SELECT * FROM  product 
WHERE pdate >= DATEADD(day,-30,GETDATE()) 
and   pdate <= getdate()

아니면 사용DateDiff

SELECT * FROM  product 
WHERE DATEDIFF(day,pdate,GETDATE()) between 0 and 30 

사용가능DateDiff이 일로쿼리의 where 절은 다음과 같습니다.

where DATEDIFF(day,pdate,GETDATE()) < 31

나는 왜 이렇게 복잡한 답들이 여기에 있는지 모르겠지만 이것이 내가 할 일입니다.

where pdate >= CURRENT_TIMESTAMP -30

오어WHERE CAST(PDATE AS DATE) >= GETDATE() -30

아래 쿼리는 지난 30일간의 레코드에 적합합니다.

여기서 리뷰 테이블을 사용해봤는데요.review_date검토 테이블의 열입니다.

SELECT * FROM reviews WHERE DATE(review_date) >= DATE(NOW()) - INTERVAL 30 DAY

이 제품은 잘 작동합니다.

SELECT * FROM product 
WHERE pdate BETWEEN datetime('now', '-30 days') AND datetime('now', 'localtime')

열을 기준으로 지난 30일 동안의 데이터를 얻을 수 있습니다.

WHERE DATEDIFF(dateColumn, CURRENT_TIMESTAMP) BETWEEN 0 AND 30

언급URL : https://stackoverflow.com/questions/27479856/get-last-30-day-records-from-today-date-in-sql-server

반응형