• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yunshui
V2EX  ›  程序员

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

  •  
  •   yunshui · Aug 21, 2019 · 3121 views
    This topic created in 2485 days ago, the information mentioned may be changed or developed.

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

    8 replies    2019-08-22 08:44:52 +08:00
    wps353
        1
    wps353  
       Aug 21, 2019
    date_format 应该能帮助你。
    yunshui
        2
    yunshui  
    OP
       Aug 21, 2019
    @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');  这样吗?
    sangbiao
        3
    sangbiao  
       Aug 21, 2019
    select * from table where year(create_time)=2019 and month(create_time) in (2,3,4);
    yunshui
        4
    yunshui  
    OP
       Aug 21, 2019
    @tgich 谢谢,我试试~感谢
    hhhzccc
        5
    hhhzccc  
       Aug 21, 2019
    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  
       Aug 21, 2019 via Android
    like 也行。

    create-time like "2019-08-%" //8 月数据。
    Leigg
        7
    Leigg  
       Aug 22, 2019 via Android
    where 条件语句中使用函数将导致索引失效
    Leigg
        8
    Leigg  
       Aug 22, 2019 via Android
    where 00:00:00<=t<=23:59:59
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5045 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 01:10 · PVG 09:10 · LAX 18:10 · JFK 21:10
    ♥ Do have faith in what you're doing.