programing

MS SQL에서 지난 30분 동안의 기록을 검색하는 방법은 무엇입니까?

newsource 2023. 6. 24. 09:14

MS SQL에서 지난 30분 동안의 기록을 검색하는 방법은 무엇입니까?

테이블에서 지난 30분 동안의 레코드를 검색하려고 합니다.어떻게 하는 거지?아래는 제 질문입니다.

select * from
[Janus999DB].[dbo].[tblCustomerPlay]
where DatePlayed < CURRENT_TIMESTAMP
and DatePlayed >
(CURRENT_TIMESTAMP-30)

변경 내용(CURRENT_TIMESTAMP-30)

대상:DateADD(mi, -30, Current_TimeStamp)

현재 날짜를 가져오려면 GetDate()를 사용합니다.

날짜 추가 기능에 대한 MSDN 링크
날짜 가져오기 기능을 위한 MSDN 링크

DATEADD를 사용하는 방법을 확인합니다.

비슷한 것

SELECT DATEADD(minute, -30, GETDATE())

사용:

SELECT * 
FROM [Janus999DB].[dbo].[tblCustomerPlay] 
WHERE DatePlayed <  GetDate() 
AND DatePlayed > dateadd(minute, -30, GetDate())

DATEADD반송만Function does not existMySQL 5.5.53에서 (오래된 것으로 알고 있습니다)

대신에, 나는 발견했습니다.DatePlayed > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 30 minute)원하는 결과를 낳기 위해

CURRENT_TIM 스탬프 - (숫자)는 정상적으로 작동하지만 어떤 숫자를 찾고 있는지 이해해야 합니다. 즉 부동 소수점 일수입니다.따라서 CURRENT_TIMestamp-1.0은 1일 전이고 CURRENT_TIMestamp-0.5는 1/2일 전입니다.30분 동안 1.0/48.0(결과가 부동 소수점 번호가 되도록 기수 사용) 또는 0.0208333333333이므로 쿼리를 다음과 같이 다시 쓰면 작동합니다.

select * from
[Janus999DB].[dbo].[tblCustomerPlay]
where DatePlayed < CURRENT_TIMESTAMP
and DatePlayed >
CURRENT_TIMESTAMP-1.0/48.0

또한 1.0/24.0/2.0을 사용하면 1.0/2.0을 사용할 수 있습니다.

SQL Server는 Julian 날짜를 사용하므로 30은 "30일 전"을 의미합니다. getdate() - 0.02083은 "30분 전"을 의미합니다.

언급URL : https://stackoverflow.com/questions/4471041/how-to-retrieve-records-for-last-30-minutes-in-ms-sql