V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yunshui
V2EX  ›  程序员

请问下 mysql 中怎么查询特定月份的数据呀 时间格式是 yyyymmdd

  •  
  •   yunshui · 2019-08-21 18:14:04 +08:00 · 2543 次点击
    这是一个创建于 1923 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每个月的会查,想查特定的月份,比如 234 456 这样的

    8 条回复    2019-08-22 08:44:52 +08:00
    wps353
        1
    wps353  
       2019-08-21 18:15:26 +08:00
    date_format 应该能帮助你。
    yunshui
        2
    yunshui  
    OP
       2019-08-21 18:17:03 +08:00
    @wps353 SELECT *  FROM tbl_order GROUP BY DATE_FORMAT(CreateTime,'%Y-%m');

    SELECT sum(money), DATE_FORMAT(CreateTime,'%Y-%m')  FROM tbl_order GROUP BY DATE_FORMAT(CreateTime,'%Y-%m');  这样吗?
    tgich
        3
    tgich  
       2019-08-21 18:22:11 +08:00
    select * from table where year(create_time)=2019 and month(create_time) in (2,3,4);
    yunshui
        4
    yunshui  
    OP
       2019-08-21 18:25:20 +08:00
    @tgich 谢谢,我试试~感谢
    hhhzccc
        5
    hhhzccc  
       2019-08-21 19:06:22 +08:00
    SELECT
    sum( CASE MONTH ( a.CreateTime ) WHEN '2' THEN 1 ELSE 0 END ) AS `2`,
    sum( CASE MONTH ( a.CreateTime ) WHEN '3' THEN 1 ELSE 0 END ) AS `3`,
    sum( CASE MONTH ( a.CreateTime ) WHEN '4' THEN 1 ELSE 0 END ) AS `4`
    FROM tbl_order a WHERE a.CreateTime >= '2019-01-01' and a.CreateTime <= '2019-12-31';
    我觉得 where 条件后面尽量少使用函数,会破坏索引,但是如果数据量少,也无所谓了。
    mmdsun
        6
    mmdsun  
       2019-08-21 19:17:11 +08:00 via Android
    like 也行。

    create-time like "2019-08-%" //8 月数据。
    Leigg
        7
    Leigg  
       2019-08-22 08:41:40 +08:00 via Android
    where 条件语句中使用函数将导致索引失效
    Leigg
        8
    Leigg  
       2019-08-22 08:44:52 +08:00 via Android
    where 00:00:00<=t<=23:59:59
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:37 · PVG 09:37 · LAX 17:37 · JFK 20:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.