分享

mysql8新特性CTE递归实现30天时间日期

 小样样样样样样 2022-02-19
WITH RECURSIVE dates (date) AS
(
SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) FROM DUAL
UNION ALL
SELECT date + INTERVAL 1 DAY FROM dates
WHERE date + INTERVAL 1 DAY <= (SELECT CURDATE() from DUAL) 

)
SELECT * FROM dates ORDER BY dates.date desc ;

 

SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL ac DAY), '%Y-%m-%d') AS DATE
FROM ( 
   SELECT @num:=@num+1 AS ac FROM 
   
    (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) num1, 
    (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 ) num2,  
   (SELECT @num:=0) num 
) ad

 

https://dev./doc/refman/8.0/en/with.html#common-table-expressions

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多