【问题标题】:Get all Dates of current weeek starting from monday to sunday mysql获取从星期一到星期日mysql的本周所有日期
【发布时间】:2021-06-28 08:50:21
【问题描述】:

我的选择查询是

SELECT DISTINCT
    CONCAT(DATE_FORMAT(CAST(call_logview.CA_N_F_Date AS DATE), "%d"),"-",DATE_FORMAT(CAST(call_logview.CA_N_F_Date AS DATE), "%b"),"-",DATE_FORMAT(CAST(call_logview.CA_N_F_Date AS DATE), "%Y")," ",DATE_FORMAT(CAST(call_logview.CA_N_F_Date AS DATE), "%a")) AS weekList,
    CAST(call_logview.CA_N_F_Date AS DATE) AS listDate 
FROM call_logview 
WHERE YEARWEEK(call_logview.CA_N_F_Date) = YEARWEEK(NOW())

这给了我下面的输出

我希望我的选择查询是从本周的星期一到星期日,如果我在 where 条件中添加“1”,即 (YEARWEEK(call_logview.CA_N_F_Date,1) = YEARWEEK(NOW(),1)) 它给了我从前一周星期日开始的结果, 但我希望结果应该是从本周的周一到周日。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我猜,您的 SQL 请求几乎是正确的,但是您应该将模式指定为“1”,以便 YEARWEEK(date, mode) 采用这种方式:

    WHERE YEARWEEK(date, 1) = YEARWEEK(CURDATE(), 1).

    所以,在你的情况下,我认为应该是这样的:

    SELECT * FROM call_logview WHERE YEARWEEK(call_logview.CA_N_F_Date, 1) = YEARWEEK(NOW(), 1);

    【讨论】:

    • 添加 '1' 或模式 '1' 刚刚从结果中删除了上一个星期日,无法获得未来或本周星期日。
    • @SatishGautam 啊,我明白了,对不起,我读错了一点。您是否尝试使用模式“5”?那是你需要的吗? mysqlcode.com/mysql-yearweek
    • 如果更改模式无济于事,请尝试使用WHERE YEARWEEK(@date, 5) = YEARWEEK(CURDATE(), 5) AND YEARWEEK(@date, 5) = YEARWEEK(CURDATE(), 5);等各种组合将星期日日期指定为单独的条件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2018-06-12
    • 2017-07-19
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多