【问题标题】:How to get last Sunday and Sunday before last using MySQL?如何使用 MySQL 获取上周日和前周日?
【发布时间】:2019-10-20 02:09:56
【问题描述】:

我正在尝试获取上周日的日期和上周日的日期。

例如:

Today (Tuesday) is '20190604'  
@Last_Sunday = '20190602'  
@Sunday_B4_Last = '20190526'  

我知道如何将日期转换为 ISO 格式,但我不知道如何让它显示星期天。

我找到了相同问题的答案,但使用的是 PostgreSQL 和 JS 等其他语言,但 MySQL 没有。

我在网上找到了一些非常相似的代码,但它显示的是星期五,而我无法让它在此之前的星期五显示。

代码如下:

select now() - interval (weekday( now())+ 2)% 7+ 1 day 'Previous Friday';

我将不胜感激任何答案,尤其是那些解释如何操作上述公式或任何其他给出所需结果的公式的答案。

【问题讨论】:

    标签: mysql date weekday


    【解决方案1】:

    一个选项:

    SELECT
      `dates`.`date` - INTERVAL WEEKDAY(`dates`.`date`) % 7 + 1 DAY `Last`,
      `dates`.`date` - INTERVAL WEEKDAY(`dates`.`date`) % 7 + 8 DAY `Previous`
    FROM (
      SELECT '2019-06-04' `date`
    ) `dates`;
    

    dbfiddle

    【讨论】:

      【解决方案2】:

      我找到了我要使用的答案:

      set @'Sunday before last' = STR_TO_DATE(CONCAT(YEARWEEK(curdate() - INTERVAL 1 WEEK),' Sunday'), '%X%V %W');
      set @'Last Sunday' = STR_TO_DATE(CONCAT(YEARWEEK(curdate()),' Sunday'), '%X%V %W') ;
      

      (然后我可以“选择”变量)

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 2022-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-10
        • 1970-01-01
        相关资源
        最近更新 更多