简体   繁体   English

如何显示不早于一天的MySQL中的行?

[英]How to display rows from MySQL not older than a day?

I want to display news, for example from yesterday. 我想显示新闻,例如昨天。 Here's what my query looks like. 这是我的查询的样子。 Is there any magical line of code which would do that? 有没有神奇的代码行可以做到这一点?

$query = '
    SELECT a.*, 
           CASE WHEN CHAR_LENGTH(a.alias) THEN  CONCAT_WS(":", a.id, a.alias)
                                          ELSE a.id END as slug,
           CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) 
                                          ELSE b.id END as catslug,
           b.title as category_title, 
           b.alias as categoryalias, 
           b.params as categoryparams,
           u.name AS author
    FROM #__content as a 
    LEFT JOIN #__categories as b ON a.catid = b.id
    LEFT JOIN #__users AS u ON u.id = a.created_by
    WHERE ' . $where. ' 
    ORDER BY ' . $orderby. ' 
    LIMIT ' . $limit;

The "magical" line of code should be in your WHERE clause. 代码的“神奇”行应该在您的WHERE子句中。

eg if you date is only YYYY-MM-DD 例如,如果您的日期只有YYYY-MM-DD

$query .= 'WHERE b.created_date = '.$db->quote( date('Y-m-d', strtotime('-1 day')) ).'

eg if your date column is YYYY-MM-DD H:i:s 例如,如果您的日期列为YYYY-MM-DD H:i:s

$query .= 'WHERE DATE_FORMAT(b.created_date,"%Y-%m-%d") = '.$db->quote( date('Y-m-d', strtotime('-1 day')) ).'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM