【问题标题】:Fetch record from current date to next whole month(till last date of next month) mysql [duplicate]获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]
【发布时间】:2017-02-27 07:28:58
【问题描述】:

假设当前日期是 18/10/2016 那么我想获取从 18/10/206 到 30/11/2016 的所有记录

这是场景,请帮助我从单个查询 mysql 中获取有效的方法来获取它。

【问题讨论】:

  • next whole month 是什么意思?未来 30 天还是下个月 1-28/29/30/31?
  • WHERE yourDate BETWEEN
  • 从当前日期到下个月的最后一个日期,正如我用一个例子解释的那样,你没有看到?

标签: php mysql


【解决方案1】:

您可以使用BETWEEN 来比较日期。

借助LAST_DAY(date)函数。

SELECT 
* 
FROM your_table 
WHERE your_date BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH)

注意:

LAST_DAY() 函数

MySQL LAST_DAY() 为日期或日期时间值返回相应月份的最后一天。如果日期或日期时间值无效,则函数返回NULL

【讨论】:

  • 很抱歉,这是语法错误
  • 请分享您尝试的查询以及遇到的错误。
  • 这是错误:SQL 查询:文档 SELECT * FROM members_detail Birthdate BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH) LIMIT 0, 25 MySQL 说:文档 #1064 - 你有SQL 语法错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH) LIMIT 0, 25' 附近使用正确的语法
  • 对不起,缺少 where 关键字,这是我的错误
  • 我看到你没有使用WHERE
【解决方案2】:
$time = strtotime(date('Y-m-d'));
$final = date("Y-m-d", strtotime("+1 month", $time));
$nextMonth= date('t/m/Y',strtotime($final));
$now=date('d/m/Y');
$sql="select * from table where date>='".$now.' and date<=$nextMonth";
$res=mysql_query($sql);

【讨论】:

  • 第一要务是尽可能只使用mysql,否则我们可以使用php,但谢谢哥们:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多