第一種方法: cross join (就相當於mysql中的循環)
CROSS JOIN 把兩張表中的數據進行 N * M的組合,即笛卡爾積
這里的兩張表利用 union all都有5條數據,所以進行 cross join 后 就有25條數據
而指定的日期區間就會從這25條數據總產生
select CURDATE() - INTERVAL '1' day
NOW()(獲取當前日期和時間) CURDATE() (獲取當前日期) CURTIME() (獲取當前時間)
這里用到的是一個 INTERVAL 函數,里面能夠用變量去代替常量
具體參考https://blog.csdn.net/sqlquan/article/details/82699237
加個between and 就可以 得到指定日期和時間了
第二種方法: 依賴於一張表——數據足夠你指定時間范圍天數的表(缺點:依賴於另一張表)
直接上代碼
結果查出來一串時間
然后依據自已的需要來篩選最后的結果
'2019-07-11' - INTERVAL(@num) DAY
的話上述已經講解過了,有不懂的自行百度@num:=@num+1
的話就相當於后端語言中的num = num + 1; 而在(select @num:=0) t
這段代碼中就相當於在執行@num:=@num+1
生效前給num = 0 定義了值為0