SQL WHERE on now()无法正常工作?

时间:2011-10-14 19:35:42

标签: mysql

我有以下查询......

SELECT fixture_date FROM tbl_foot_games WHERE fixture_date < now() AND leagueid = '68' AND (type = '2' OR type = '12' OR type = '22' OR type = '32') GROUP BY fixture_date ORDER BY fixture_date

这是输出以下内容....

  

1318876658   1319135858   1319395058   1319654258   1319913458   1320176258   1320435458   1320694658   1320953858   1321213058   1321472258

所有这些时间戳现在都领先。 知道为什么输出任何东西吗?

但我确实需要将now()更改为3天。 72小时!

有什么想法吗? 谢谢:))

2 个答案:

答案 0 :(得分:2)

尝试:

SELECT fixture_date 
FROM tbl_foot_games 
WHERE FROM_UNIXTIME(fixture_date) < NOW() 
  AND leagueid = '68' 
AND type IN ('2', '12', '22', '32') 
GROUP BY fixture_date 
ORDER BY fixture_date

但你真的不应该将时间戳存储为CHARVARCHAR

答案 1 :(得分:1)

将您的查询更改为:

SELECT NOW(), fixture_date FROM tbl_foot_games ...

查看NOW()返回的内容。你的查询似乎是正确的(GROUP BY看起来对我来说毫无意义......)。要求未来约会,请使用date_add,如下所示:

... WHERE fixture_date < DATE_ADD(NOW(), INTERVAL 3 DAY) ...