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
MySQL Select Date Equal to Today
提问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 SELECT
statement 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_date
field
如果您将索引用于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()