繁体   English   中英

Mysql选择查找表日期的第三周和星期几

[英]Mysql Select find third week and day of week from table date

我有一个MySQL选择查询,我试图从我的表中的日期第三个星期四这里是我有查询任何帮助将非常感谢。

SELECT 
trandate,
transno,
inputdate,
DATE_ADD(DATE(trandate),
    INTERVAL (IF(DAYOFWEEK(trandate) < 5,
        (3 + WEEK(trandate)),
        WEEK(trandate))) DAY) AS third_thursday
FROM
    ts.debtortrans
WHERE
    trandate = '2019-03-01';

如果您希望在日期之后的第三个星期四,您可以通过添加3周,然后将天数调整为星期四来获得。 这是使用计算的

(12 - DAYOFWEEK(trandate)) % 7

我们需要使用12而不是5(星期四的DAYOFWEEK ),因为MySQL为模数操作返回负数,其中被除数操作数为负。

所以公式是

trandate + INTERVAL 3 WEEK + INTERVAL ((12 - DAYOFWEEK(trandate)) % 7) DAY

在dbfiddle上演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM