Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中获取上个月的日期_Mysql_Sql_Date - Fatal编程技术网

在mysql中获取上个月的日期

在mysql中获取上个月的日期,mysql,sql,date,Mysql,Sql,Date,我需要得到上个月从1号到当前日期的日期。假设今天的日期是3月25日,我需要得到2月1日到25日的日期。假设今天的日期是3月30日,我需要得到从2月1日到2月28日/29日的日期,无论最后的日期是什么。我花了很多时间才弄到,但运气不好。有人能帮我解决这个特殊的案子吗?我可以在另一个数据库上做这件事,但我想在mysql上做这件事 基本上,我对其他数据库所做的是->dateto_chardateadd_monthDateSysDate,-1、'YYYY-MM-01 00:00:00'和dateadd_

我需要得到上个月从1号到当前日期的日期。假设今天的日期是3月25日,我需要得到2月1日到25日的日期。假设今天的日期是3月30日,我需要得到从2月1日到2月28日/29日的日期,无论最后的日期是什么。我花了很多时间才弄到,但运气不好。有人能帮我解决这个特殊的案子吗?我可以在另一个数据库上做这件事,但我想在mysql上做这件事


基本上,我对其他数据库所做的是->dateto_chardateadd_monthDateSysDate,-1、'YYYY-MM-01 00:00:00'和dateadd_monthDateSysDate,-1之间的日期->您可以使用DATEDATE\u SUBNOW,间隔1个月。这将自动将结果限制在当月的最后一天,因此如果今天的日期是3月30日,则返回2月28日。

这将满足您的要求:

WHERE d BETWEEN DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m-01') 
  AND DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

谢谢您的回复,但是如何获取从1日到上个月的日期。i、 例如,结果中的2014-02-01、2014-02-02、2014-02-03等。您的意思是要检索数据库中可能不存在的数据吗?你为什么要这么做?杰克,谢谢你的回答。但是,如何得到只是日期。我不是用它来从特定表中选择列。我只想要介于这两个范围之间的日期。@rick MySQL不太适合生成日期范围;处理应用层的漏洞会更容易。在另一个数据库中,我可以得到我所需要的。但在我看来,运气不好。说到应用层,正如我们昨天讨论的那样,这就是我在php中尝试的,但我在这方面也失败了。@rick使用strotime的“上个月的第一天”,看看这能让你走多远:我是通过编程做到的。谢谢你的帮助