日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql生成连续时间段记录

發布時間:2024/9/27 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql生成连续时间段记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求說明

基于某個起始日期值,比如‘2021-9-1’,生成其之后的30天數據,結果類似:

2021-09-02、2021-09-03、2021-09-04...

問題分析

該需要看似簡單,但想不借助交互式SQL即WHILE循環的方式,則得考慮借助自增輔助表來實現。自增輔助表的構造有幾種方法,詳見代碼處的介紹:

-- # Way1 借助系統表作為自增輔助 SELECT DATE_FORMAT(DATE_SUB('2021-09-01', INTERVAL -pos DAY), '%Y-%m-%d') gendate FROM(SELECT ORDINAL_POSITION pos FROM information_schema.`COLUMNS`WHERE TABLE_NAME = 'table_lock_waits_summary_by_table'AND ORDINAL_POSITION <30 )A-- # Way2 借助系統表生成自增輔助 SELECT DATE_FORMAT(DATE_SUB('2021-09-01', INTERVAL -num DAY), '%Y-%m-%d') gendate FROM( SELECT @row:=@row+1 num FROM sys.metrics a,(SELECT @row:=0) b )A WHERE A.num<30-- # Way3 借助CTE生成自增序列,mysql 8及以上版本 WITH RECURSIVE cte (num) AS (SELECT 1UNION ALLSELECT num + 1 FROM cte WHERE num < 30 ) SELECT DATE_FORMAT(DATE_SUB('2021-09-01', INTERVAL -num DAY), '%Y-%m-%d') gendate FROM cte;

結果展示?

總結

以上是生活随笔為你收集整理的Mysql生成连续时间段记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。