sql查詢時間區間


最近七天的日期列表

SELECT @s :=@s + 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`
FROM mysql.help_topic,(SELECT @s := -1) temp
WHERE @s < 6
ORDER BY `date`

 一天24小時查詢(0 - 23)

SELECT @d := @d + 1 `hour`
FROM mysql.help_topic,(SELECT @d := -1) temp
WHERE @d < 23
ORDER BY `hour`

 本周日期列表

SELECT @a :=@a + 1 as `index`, DATE(ADDDATE(CURRENT_DATE, INTERVAL @a DAY)) AS `date`
FROM mysql.help_topic,(SELECT @a := 0) temp
WHERE @a < 6 - WEEKDAY(CURRENT_DATE)
UNION
SELECT @s :=@s - 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`
FROM mysql.help_topic,(SELECT @s := WEEKDAY(CURRENT_DATE) + 1) temp
WHERE @s > 0
ORDER BY `date`

本月日期列表

SELECT @a :=@a + 1 as `index`, DATE(ADDDATE(CURRENT_DATE, INTERVAL @a DAY)) AS `date`
FROM mysql.help_topic,(SELECT @a := 0) temp
WHERE @a < DAY(LAST_DAY(CURRENT_DATE)) - DAY(CURRENT_DATE)
UNION
SELECT @s :=@s - 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`
FROM mysql.help_topic,(SELECT @s := day(CURRENT_DATE)) temp
WHERE @s > 0
ORDER BY `date`




SELECT day_temp.date, COALESCE(stat_price.price, 0) AS price
FROM (
    SELECT @a :=@a + 1 as `index`, DATE(ADDDATE(CURRENT_DATE, INTERVAL @a DAY)) AS `date`
    FROM mysql.help_topic,(SELECT @a := 0) temp
    WHERE @a < DAY(LAST_DAY(CURRENT_DATE)) - DAY(CURRENT_DATE)
    UNION
    SELECT @s :=@s - 1 as `index`, DATE(DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)) AS `date`
    FROM mysql.help_topic,(SELECT @s := day(CURRENT_DATE)) temp
    WHERE @s > 0
    ORDER BY `date`
) AS day_temp
LEFT JOIN
(
    SELECT DATE(created_date) AS date, SUM(total_price) AS price
    FROM t_order
    WHERE MONTH(created_date) = MONTH(CURRENT_DATE)
                AND YEAR(created_date) = YEAR(CURRENT_DATE)
    GROUP BY DATE(created_date)
) AS stat_price
ON day_temp.date = stat_price.date

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM