显示当前日,周,月和年的数据

时间:2014-12-29 09:10:19

标签: php mysql

我有表user,其中包含id_userusernameuser_timeuser_time是用户注册的时间,属性为timestamp,因此输出如下:

User A | user_time > 2014-12-22 10:10:10

然后我使用此查询每年显示数据

SELECT * FROM user WHERE user_time = YEAR(NOW());

查询有效,但只返回一个空行。它不仅是年份,还有日,周和月返回空行。为什么这个查询没有返回任何数据?

2 个答案:

答案 0 :(得分:10)

问题是你没有对你的数据做任何事情:

SELECT * FROM user WHERE user_time=YEAR(NOW())

尝试从YEAR获取user_time,就像这样,所以你要比较数字,而不是timestamp和数字:

SELECT * FROM user WHERE YEAR(user_time) = YEAR(NOW())

或者,正如@ItsMe建议:

EXPLAIN SELECT * FROM user WHERE YEAR(user_time) = YEAR(NOW())

请尽量避免查询中的*,这是一种不好的做法。

答案 1 :(得分:7)

YEAR会返回2014之类的数字。那永远不会等于时间。您需要测试user_time的年份是否与给定年份相同:

SELECT * FROM user
WHERE YEAR(user_time) = YEAR(NOW())