正在编写一个存储过程,它将返回数字的第一天和最后一天。例如,如果我输入2,它将返回1-2-2013和28-2-2013,如果我输入7,则它将返回1-7-2013和31-7-2013。 2013年是当年。我能这样做吗?
由于
答案 0 :(得分:0)
要获取当年的一个月的开头(该示例使用第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;
答案 1 :(得分:0)
由于任何月份的第一天为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 |
+---------------------------------------------------------------------------------+