0

我正在创建一个游戏,如果与这些控件关联的游戏周的 DateTime 距离当前时间 1 小时或更长时间,则需要禁用控件。

我需要在 SQL Server 2008 中创建一个查询,该查询将带回比当前时间早 1 小时或更早的所有 gameweekID。

所以一个例子是:

GameweekID 1 - FixtureTime 31/03/2013 10:00(在数据库中存储为 DateTime)

因此,如果当前时间和日期小于 31/03/2013 9:00,它将出现在我的查询中。

我目前的尝试是:

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

但这显然没有考虑到之前的 1 小时。

我希望这是有道理的,写起来很混乱!

4

2 回答 2

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())

参考

于 2013-03-31T16:49:05.093 回答
1

如果您使用的是 SQL Server,您将使用DATEDIFF

SELECT * FROM Fixture WHERE DATEDIFF(hour, fixtureDate, GetDate()) >= 1
于 2013-03-31T16:52:07.703 回答