带有Where子句的Mysql日期问题

带有Where子句的Mysql日期问题,mysql,sql,date,Mysql,Sql,Date,我只是想知道如何核对这个日期 截至2012年3月7日,带where条款 这是我的Sql查询 SELECT u.`last_activity` FROM users u WHERE = '2012-03-07' 回应 空响应 试试这个: SELECT u.`last_activity` FROM users u WHERE DATE(u.`last_activity`) = '2012-03-07' 试试这个: SELECT u.`last_activity` FROM users u

我只是想知道如何核对这个日期

截至2012年3月7日,带where条款

这是我的Sql查询

SELECT u.`last_activity` FROM users u WHERE = '2012-03-07'
回应

空响应

试试这个:

SELECT u.`last_activity` 
FROM users u 
WHERE DATE(u.`last_activity`) = '2012-03-07'
试试这个:

SELECT u.`last_activity` 
FROM users u 
WHERE DATE(u.`last_activity`) = '2012-03-07'

您的SQL无效,并且看起来最后一个活动是一个时间戳,因此除非时间戳是午夜,否则您的比较将无法工作

请尝试在该日期内的所有时间都有效的方法:

SELECT u.`last_activity` FROM users u WHERE last_activity >= '2012-03-07' AND last_activity < '2012-03-08'

您的SQL无效,并且看起来最后一个活动是一个时间戳,因此除非时间戳是午夜,否则您的比较将无法工作

请尝试在该日期内的所有时间都有效的方法:

SELECT u.`last_activity` FROM users u WHERE last_activity >= '2012-03-07' AND last_activity < '2012-03-08'
这个怎么样

SELECT u.last_activity FROM users u WHERE STR_TO_DATE(u.`last_activity`,"%Y-%m-%d")= '2012-03-07';
这个怎么样

SELECT u.last_activity FROM users u WHERE STR_TO_DATE(u.`last_activity`,"%Y-%m-%d")= '2012-03-07';

您正在添加可能影响查询速度的额外函数。在处理小型数据库时,您不会注意到这一点,但对于大型数据库,您可以。当您可以使用日期函数时,为什么要格式化我知道这对于大型数据库来说不是一个好的做法,我已经从您的经验中得到了答案,我对这两个函数非常困惑您正在添加可能影响查询速度的额外函数。在处理小型数据库时,您不会注意到这一点,但对于大型数据库,您可以。当您可以使用日期函数时,为什么要格式化我知道这对于大型数据库来说不是一个好的实践,我已经从您的经验中得到了答案,我对这两个函数非常困惑