从数据库计算当前月份

时间:2017-03-22 10:20:14

标签: php mysql

我想从数据库中计算月份的日期。 我的代码就像

$sql="SELECT count(date) FROM tbl_upcoming where
date=MONTH(NOW())";
if ($results=mysqli_query($conn,$sql)){
    $datecount=mysqli_num_rows($results);
}
例如:' 2017-3-20',' 2017-3-4',' 2017-1-3',它将返回2。

4 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT date, count(1) FROM  tbl_upcoming where
MONTH(date)=MONTH(NOW()) and YEAR(date) = YEAR(NOW()) GROUP BY date

答案 1 :(得分:0)

你快到了那里:

SELECT count(*) FROM tbl_upcoming WHERE MONTH(the_date)=MONTH(NOW())";

MONTH(NOW())的方法很好,这将返回当前月份。 但是,您将当前月份与整个日期进行比较,但这不会起作用。您还必须将MONTH()功能应用于您的日期,以便将月份与月份进行比较

答案 2 :(得分:0)

你应该这样检查,

月也可以是过去的一年或明年,

select count(*) as cnt from tbl_upcoming 
where MONTH(date) = MONTH(CURRENT_DATE) and YEAR(date) = YEAR(CURRENT_DATE);

我希望这会有所帮助。

答案 3 :(得分:0)

您想知道当月有多少行?

SELECT  COUNT(*)
    FROM  tbl_upcoming
    WHERE  `date` >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY;

注意:

  • 在大多数情况下,简单地说COUNT(*)
  • CURDATE()今天上午是午夜,因此您的查询更容易处理。
  • CURDATE() - INTERVAL DAY(CURDATE())-1 DAY为您提供本月第一天的DATE
  • 该配方避免了所有具有各种数据类型的打嗝:DATEDATETIMEDATETIME(6)TIMESTAMP等。
  • 下一个笔记也处理了一年的年终,
  • 如果您有未来几个月的日期,那么

添加

 AND `date` < CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
                        + INTERVAL 1 MONTH;