【问题标题】:Mysql today datemysql今天日期
【发布时间】:2015-12-24 20:36:30
【问题描述】:

我只想选择今天日期的记录?我正在使用这个查询:

$query = mysql_query (
    "SELECT
        tentego_img.*
    FROM
        tentego_img
    INNER JOIN tentego_img_vote ON tentego_img.id = tentego_img_vote.object_id
    WHERE
        cat = '".$cat [ ' id ' ]."'
    GROUP BY
        tentego_img_vote.object_id
    ORDER BY
        SUM(
            (
                CASE
                WHEN tentego_img_vote.vote = '0'
                AND DATE(date) = DATE(NOW()) THEN
                    '1'
                ELSE
                    '-1'
                END
            )
        ) DESC
    LIMIT 1"
);

在这段摘录代码中:

(CASE WHEN tentego_img_vote.vote = '0' AND DATE(date) = DATE(NOW()) THEN '1' ELSE '-1' END) 

如何选择今天的日期?

【问题讨论】:

  • 显示你的数据库架构
  • ...不要使用 PHP 已弃用的 mysql_ API

标签: php mysql date select


【解决方案1】:

这是您的查询,已修复:

  • 使用表别名。
  • GROUP BY 更明显表中的字段。
  • 为了避免单引号中的数值

这里是查询:

SELECT i.* 
FROM tentego_img i INNER JOIN
     tentego_img_vote iv
     ON i.id = iv.object_id
WHERE cat = '".$cat['id']."'
GROUP BY i.id 
ORDER BY SUM(CASE WHEN iv.vote = 0 AND DATE(date) = DATE(NOW())
                  THEN 1 ELSE -1 END) DESC
LIMIT 1;

如果您只想从今天开始投票,则将条件移至WHERE 子句:

SELECT i.* 
FROM tentego_img i INNER JOIN
     tentego_img_vote iv
     ON i.id = iv.object_id
WHERE cat = '".$cat['id']."' AND
      DATE(date) = CURDATE()
GROUP BY i.id 
ORDER BY SUM(CASE WHEN iv.vote = 0
                  THEN 1 ELSE -1 END) DESC
LIMIT 1;

更好的方法是使用不等式而不是函数:

WHERE cat = '".$cat['id']."' AND
      (date >=  CURDATE() AND
       date < DATEADD(CURDATE(), interval 1 day)
      )

这更好,因为它可以在适当的情况下利用date 上的索引。

【讨论】:

    【解决方案2】:

    这应该对您有用,更改日期格式以匹配您在数据库中使用的格式:

    (CASE WHEN tentego_img_vote.vote = '0' AND STR_TO_DATE(date, '%d.%m.%Y') > CURRENT_TIMESTAMP - INTERVAL 1 DAY) THEN '1' ELSE '-1' END) //where 'date' is the column name of the date you're checking.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 2012-09-22
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多