[英]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()。
使用:
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.