获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]
Posted
技术标签:
【中文标题】获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]【英文标题】:Fetch record from current date to next whole month(till last date of next month) mysql [duplicate] 【发布时间】: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
从当前日期到下个月的最后一个日期,正如我用一个例子解释的那样,你没有看到?
【参考方案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,但谢谢哥们:)以上是关于获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]的主要内容,如果未能解决你的问题,请参考以下文章