mysql查询关于时间的查询语句

1.查询今年的数据

where YEAR(create_time) = YEAR(CURDATE()) 

2.查询今年每个月的数据


SELECT a.mon,IFNULL(b.count,0) AS count
FROM ( 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 11 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 10 MONTH),'%m') AS mon 
    UNION ALL 
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 9 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 8 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 MONTH),'%m') AS mon 
    UNION ALL 
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 6 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 5 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 4 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%m') AS mon 
    UNION ALL 
    SELECT DATE_FORMAT(CURDATE(),'%m') AS mon 
    ) a  LEFT JOIN ( 
    SELECT DATE_FORMAT(create_time,'%m')  AS DATETIME, count(1) AS count
    FROM t_operation_eye_of_heaven
    WHERE YEAR(create_time) = YEAR(CURDATE()) AND `status`>0
    GROUP BY DATE_FORMAT(create_time,'%Y-%m') 
) b ON a.mon = b.datetime

3.查询当天的数据

WHERE create_time between #{create_time} and now() 

4. 查询每个月不同状态的数据

SELECT
            DATE_FORMAT(happen_time,'%Y-%m') date,
            SUM(CASE WHEN t.`status` >0  THEN 1 ELSE 0 END) submitCount,
            SUM(CASE WHEN t.`flag` = 1 THEN 1 ELSE 0 END) releaseCount,
            SUM(CASE WHEN t.`flag` = 2 THEN 1 ELSE 0 END) noPassCount,
            SUM(CASE WHEN t.`flag` = 3 THEN 1 ELSE 0 END) yjCount,
            SUM(CASE WHEN t.`amount` is not null THEN amount ELSE 0 END) totalMoney
        FROM
            t_operation_eye_of_heaven t
            <where>
                <if test="date !='' and date !=null">
                    and  happen_time BETWEEN #{startTime} and #{endTime}
                </if>
            </where>
            GROUP BY DATE_FORMAT(happen_time,'%Y-%m')
            order by DATE_FORMAT(happen_time,'%Y-%m') desc

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值