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