【问题标题】:Mysql to return the first day and last day of a number from 1-12mysql返回1-12的数字的第一天和最后一天
【发布时间】:2013-08-08 03:52:29
【问题描述】:

我正在编写一个存储过程,它将返回一个数字的第一天和最后一天。例如,如果我输入 2,它将返回 1-2-2013 和 28-2-2013,如果我输入 7,那么它将返回 1-7-2013 和 31-7-2013。其中 2013 年是当前年份。我可以这样做吗?

谢谢

【问题讨论】:

  • 是的。如果您发布一些代码,我们可能会提出建议。
  • 查看这个问题的答案,他们展示了如何获得第一天和最后一天。 stackoverflow.com/questions/3298288/…

标签: mysql


【解决方案1】:

获取当年的月初(示例使用第 2 个月):

SET @theMonth = 2;
SET @beginMonth = STR_TO_DATE(CONCAT('1-', @theMonth, '-', YEAR(CURDATE())), '%d-%m-%Y');

要从月初开始计算月末,加一个月,然后减一天:

SET @endMonth = @beginMonth + INTERVAL 1 MONTH - INTERVAL 1 DAY;

【讨论】:

    【解决方案2】:

    由于任何一个月的第一天都是 1,因此您可以通过使用适当命名的 LAST_DAY 函数来获取最后一天:

    mysql> SELECT LAST_DAY(STR_TO_DATE(CONCAT(YEAR(CURDATE()),'-','2-1'),GET_FORMAT(DATE,'ISO')));
    +---------------------------------------------------------------------------------+
    | LAST_DAY(STR_TO_DATE(CONCAT(YEAR(CURDATE()),'-','2-1'),GET_FORMAT(DATE,'ISO'))) |
    +---------------------------------------------------------------------------------+
    | 2013-02-28                                                                      |
    +---------------------------------------------------------------------------------+
    

    【讨论】:

      猜你喜欢
      • 2017-07-21
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2017-08-19
      • 2016-02-09
      • 2011-01-06
      相关资源
      最近更新 更多