根据今天的日期获取最后一条记录

时间:2012-12-26 07:42:52

标签: mysql

你好我有足球比赛的桌子,我需要根据今天的日期获得上一场比赛和下一场比赛。

我尝试过使用此查询

SELECT DATE( match_date ) AS yesterday
FROM matches
WHERE DATE( match_date ) = DATE( DATE_SUB( NOW( ) , INTERVAL 0 DAY ) ) 
GROUP BY yesterday

但记录可以在2天或3天之前......

此外,对于Next Game如果我使用明天的日期,我将无法确定游戏是否在第二天或之后存在。

我使用此查询在今天的日期之前获得所有游戏。

 SELECT *
 FROM matches
 WHERE DATE( match_date ) < DATE( DATE_SUB( NOW( ) , INTERVAL 0 DAY ) )

我需要的是今天是12-26-2012,还有像这样的表

----------------------------------------------
    id         Date         Home        Away
----------------------------------------------
    1       2012-12-26       23          85
    2       2012-12-25       11          23
    3       2012-12-01       23          43
    4       2012-12-29       14          23
    5       2013-01-14       23          192
    6       2013-01-17       23          77


INPUT:  GET THE NEXT GAME FOR TEAM = 23 
OUTPUT: 4

INPUT: GET THE LAST GAME FOR TEAM = 23 
OUTPUT: 3

1 个答案:

答案 0 :(得分:2)

要获得最后一场比赛:

SELECT DATE( match_date ) AS last_game
FROM matches
WHERE DATE( match_date ) < CURDATE()
ORDER BY match_date DESC
LIMIT 1;

获得下一场比赛:

SELECT DATE( match_date ) AS last_game
FROM matches
WHERE DATE( match_date ) > CURDATE()
ORDER BY match_date ASC
LIMIT 1;