簡體   English   中英

如何在MS SQL中檢索最近30分鍾的記錄?

[英]How to retrieve records for last 30 minutes in MS SQL?

我想在表格中檢索最近30分鍾的記錄。 怎么做? 以下是我的查詢..

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

改變這個(CURRENT_TIMESTAMP-30)

DateADD(mi, -30, Current_TimeStamp)DateADD(mi, -30, Current_TimeStamp)

要獲取當前日期,請使用GetDate()。

MSDN鏈接到DateAdd函數
MSDN鏈接獲取日期功能

看看使用DATEADD

就像是

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

使用:

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

僅返回DATEADD MySQL 5.5.53 Function does not exist (我知道它已經老了)

相反,我發現DatePlayed > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 30 minute)以產生所需的結果

SQL Server使用Julian日期,因此您的30表示“30個日歷日”。 getdate() - 0.02083表示“30分鍾前”。

請記住,CURRENT_TIMESTAMP - (數字)工作正常,但您需要了解它所尋找的數字 - 它是浮點天數。 所以CURRENT_TIMESTAMP-1.0是1天前,CURRENT_TIMESTAMP-0.5是半天前。 30分鍾,即1.0 / 48.0(使用基數,因此結果是浮點數)或0.0208333333333333,因此如果重寫為您的查詢將起作用

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

你也可以使用1.0 / 24.0 / 2.0,如果你看起來更像是1/2小時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM