我正在尝试选择日期等于今天的日期时间字段。但是,查询永远不会返回任何行。
我的数据库中有这一行:
id booked_at
1 2015-08-05 09:10:56
我正在使用的查询是:
select date(`booked_at`) from `booking_dates` where booked_at = CURDATE();
为什么这不会返回上面的行?
答案 0 :(得分:13)
您必须删除booked_at
的时间部分,因为2015-08-05 09:10:56
不等于2015-08-05
。试试这个:
select date(booked_at) from booking_dates where date(booked_at) = CURDATE();
答案 1 :(得分:2)
在列booked_at
上使用索引:
SELECT date(booked_at)
FROM booking_dates
WHERE booked_at >= CURDATE()
AND booked_at < CURDATE() + INTERVAL 1 DAY