MySQL 选择日期等于今天

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12677707/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 15:03:32  来源:igfitidea点击:

MySQL Select Date Equal to Today

mysql

提问by Jako

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, but it doesn't seem to work.

我正在尝试运行一个 mysql select 语句,它查看今天的日期并且只返回当天注册的结果。我目前尝试了以下方法,但似乎不起作用。

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

I've modified my SELECTstatement to this, thanks guys.

我已经修改了我的SELECT声明,谢谢大家。

SELECT id FROM users WHERE DATE(signup_date) = CURDATE()

SELECT id FROM users WHERE DATE(signup_date) = CURDATE()

回答by Barmar

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

回答by Sergii Stotskyi

This query will use index if you have it for signup_datefield

如果您将索引用于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)

回答by Taryn

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

听起来您需要将格式添加到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

参见SQL Fiddle with Demo