2013-03-31 184 views
0

我創建一個遊戲,需要控制如果與這些控件相關的遊戲週期中的日期時間是1個小時從當前時間較長客場被禁用。SQL查詢的日期時間

我需要建立在SQL Server 2008中的查詢,將帶回的所有gameweekID的是1個小時早於當前時間。

所以一個例子將是:

GameweekID 1 - FixtureTime 31/03/2013 10:00(在數據庫中存儲爲日期時間)

因此,如果當前時間和日期是小於31/2013年3月9:00它會出現在我的查詢中。

我現在的嘗試是:

SELECT * FROM Fixture WHERE fixtureDate > '2013/03/31 9:00' 

但這顯然不前1小時考慮。

我希望這是有道理的,是相當混亂寫!

回答

2

這將使你在過去一小時:

MySQL的

SELECT columnList 
FROM fixture 
WHERE fixtureDate BETWEEN DATE_SUB(NOW(), INTERVAL 1 HOUR) AND NOW() 

SQL服務器

SELECT columnList 
FROM fixture 
WHERE fixtureDate BETWEEN DATEADD(month, 1, GETDATE()) AND GETDATE() 

這會給你任何超過1小時更大:

MySQL的

SELECT columnList 
FROM fixture 
WHERE fixtureDate < DATE_SUB(NOW(), INTERVAL 1 HOUR) 

SQL服務器

SELECT columnList 
FROM fixture 
WHERE fixtureDate < DATEADD(month, 1, GETDATE()) 

參考

+0

這沒有奏效。我得到一個錯誤說DATE_SUB和現在 – JackofAll

+0

嘛,你使用的是什麼數據庫管理系統無法識別的功能呢? – Kermit

+0

對不起,我以爲我把它放在後,我會編輯它。 SQL Server – JackofAll

1

如果您使用的是SQL Server,則應該使用DATEDIFF

SELECT * FROM Fixture WHERE DATEDIFF(hour, fixtureDate, GetDate()) >= 1