【问题标题】:Get First & Last Day of Month from Year & Month variables从年份和月份变量中获取每月的第一天和最后一天
【发布时间】:2014-03-21 19:48:59
【问题描述】:

使用 MySql

我有以下变量(以“3”和“2014”为例填写):

SET @Month = 3;
SET @Year = 2014;

期望的结果

I'd like to get the first day of the month and the last day of the month separately, 
using the variables (avoiding any NOW() or CURDATE() formulas), in %Y-%m-%d format. In other words:

2014-03-01
2014-03-31

我已经尝试了以下基本函数的许多可能性,还有一些我已经删除了

SELECT LAST_DAY(`SELECT(@Year)-03-01`)
SELECT LAST_DAY('@Year-@Month')
SELECT DATE_FORMAT(?, '%Y-%m-01')

【问题讨论】:

  • SELECT STR_TO_DATE(CONCAT(@Year,'-',@Month,'-01'),'%Y-%m-%d'), LAST_DAY(STR_TO_DATE(CONCAT(@Year,'-',@Month,'-01'),'%Y-%m-%d'));
  • 是你要找的fiddle

标签: mysql date variables time


【解决方案1】:
SET @Months = 3;
SET @Years = 2014;
SELECT DATE_FORMAT(DATE(concat(@Years, '-', @Months, '-01')), '%Y-%m-%d');
SELECT LAST_DAY(DATE(concat(@Years, '-', @Months, '-01')));

'Year' 和 'Month' 是 MySQL 中保留的函数名。所以我建议重命名它以避免混淆。

【讨论】:

    【解决方案2】:
    SELECT DATE_SUB(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)), 
                    INTERVAL DAY(LAST_DAY(DATE_ADD(NOW(), INTERVAL 1 MONTH)))-1 DAY) AS firstOfNextMonth,
           LAST_DAY(DATE_ADD(NOW(), 
                    INTERVAL 1 MONTH)) AS lastOfNextMonth
    

    来源:Get the first and last date of next month in MySQL

    【讨论】:

    • 这不包括变量
    • 我只是发布一个示例,以便您适应:P
    • 谢谢,但这就是我需要帮助的 :) 整合变量
    • 哦,好的。对不起,我帮不上忙:(
    猜你喜欢
    • 2017-10-29
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2019-03-20
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多