我正在尝试运行一个mysql select语句,它查看今天的日期,只返回当天注册的结果。我目前尝试了以下方法,但似乎没有用。
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE users.signup_date = CURDATE()
我已经修改了我的SELECT
声明,谢谢你们。
SELECT id FROM users WHERE DATE(signup_date) = CURDATE()
答案 0 :(得分:151)
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE DATE(signup_date) = CURDATE()
答案 1 :(得分:23)
如果您有signup_date
字段
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE signup_date >= CURDATE() && signup_date < (CURDATE() + INTERVAL 1 DAY)
答案 2 :(得分:11)
听起来您需要将格式添加到WHERE
:
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE DATE_FORMAT(users.signup_date, '%Y-%m-%d') = CURDATE()
答案 3 :(得分:1)
您可以在一天中的整个时间使用CONCAT
和CURDATE()
,然后在BETWEEN
条件下使用WHERE
进行过滤:
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE (users.signup_date BETWEEN CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59'))
答案 4 :(得分:0)
这是一个查找日期的简单代码
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE DATE_FORMAT(users.signup_date, '%Y-%m-%d') = CURDATE()