昨天的所有MySQL记录

时间:2016-01-21 00:33:20

标签: mysql datetime

获取日期时间字段的所有记录的最有效方法是在昨天的val workers = context.actorOf(Props[MyWorker].withRouter(RoundRobinRouter(10))) val it = Iteratee.foreach[Msg] { msg => workers ? msg } msgEnumerator.apply(it) 和昨天的SELECT p.name FROM product p LEFT JOIN ( SELECT productId FROM company_product_country cpcTmp WHERE companyId = 1 AND countryId IN (0,1,2,3) AND ( productId IN (4, 5) OR (productId = 2 AND limitedAvailability = 0) ) ) t ON p.productId = t.productId WHERE t.productId IS NULL AND p.productId IN (2,4,5) 之间?

表:

00:00:00

假设昨天是2016-01-19,那么在这种情况下,我想要返回的是第1行和第2行。

6 个答案:

答案 0 :(得分:32)

由于您只是在寻找日期部分,因此您可以使用MySQL's DATE() function轻松地对其进行比较。请注意,如果您有大量的记录,这可能效率低下;使用DATE()的派生值会丢失索引优势。

SELECT * FROM table WHERE DATE(created_at) = DATE(NOW() - INTERVAL 1 DAY);

答案 1 :(得分:6)

如果您说

,仍然可以使用索引
SELECT * FROM TABLE
WHERE CREATED_AT >= CURDATE() - INTERVAL 1 DAY
  AND CREATED_AT < CURDATE();

答案 2 :(得分:1)

使用:     subdate(current_date, 1)

对你的案子来说真棒!

答案 3 :(得分:1)

您可以使用subdate表示“昨天”,并使用date()表示您希望记录中列的日期部分匹配。所以:

SELECT *
FROM tablename
WHERE DATE(created_at) = SUBDATE(CURRENT_DATE(), INTERVAL 1 DAY)

答案 4 :(得分:1)

Here是一个回答相同的问题。要总结一下答案,请按照Sajmon的建议使用subdate()

subdate(currentDate, 1)

使用你的桌子应该是。

select *
from tablename
where created_at between subdate(CURDATE(), 1)
and date (now() )

答案 5 :(得分:0)

SELECT subdate(current_date(),1)

SELECT * FROM表 在何处created_at> = subdate(current_date(),1)