2013-03-31 138 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