获取日期时间字段的所有记录的最有效方法是在昨天的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行。
答案 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)