MySQL Select Date Equal to Today

后端 未结 4 2010
情歌与酒
情歌与酒 2020-11-27 15:54

I\'m trying to run a mysql select statement where it looks at today\'s date and only returns results that signed up on that current day. I\'ve currently tried the following,

相关标签:
4条回答
  • 2020-11-27 16:01
    SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
    FROM users 
    WHERE DATE(signup_date) = CURDATE()
    
    0 讨论(0)
  • 2020-11-27 16:01

    Sounds like you need to add the formatting to the WHERE:

    SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
    FROM users 
    WHERE DATE_FORMAT(users.signup_date, '%Y-%m-%d') = CURDATE()
    

    See SQL Fiddle with Demo

    0 讨论(0)
  • 2020-11-27 16:05

    You can use the CONCAT with CURDATE() to the entire time of the day and then filter by using the BETWEEN in WHERE condition:

    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'))
    
    0 讨论(0)
  • 2020-11-27 16:09

    This query will use index if you have it for signup_date field

    SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
        FROM users 
        WHERE signup_date >= CURDATE() && signup_date < (CURDATE() + INTERVAL 1 DAY)
    
    0 讨论(0)
提交回复
热议问题