精华内容
下载资源
问答
  • SQL搜索近12个月数据

    千次阅读 2014-09-26 17:58:43
    常用的例子就是展示十二个月数据(当前月向前起向前推12个月)分布。效果图如下: 那么就要对数据库的数据进行钻取,不管数据库中某个月是够有数据,都要将这个月钻取出来,也就是十二个月的列是固定的,...

    企业应用经常用图表来展示用户数据情况,便于企业决策分析;常用的例子就是展示近十二个月的数据(当前月向前起向前推12个月)分布。效果图如下:


    那么就要对数据库的数据进行钻取,不管数据库中某个月是否有数据,都要将这个月钻取出来,也就是近十二个月的列是固定的,简单设计一个数据表结构,有如下几条数据:

    Id

    MYear

    MMonth

    data

    100

    2013

    10

    12.5

    101

    2014

    1

    NULL

    102

    2014

    8

    14

    (2014年9月之前的12个月数据)希望搜出结果如下:

    2013年10月

    12.5

    2013年11月

    NULL

    2013年12月

    NULL

    2014年1月

    NULL

    2014年2月

    NULL

    2014年3月

    NULL

    2014年4月

    NULL

    2014年5月

    NULL

    2014年6月

    NULL

    2014年7月

    NULL

    2014年8月

    14

    2014年9月

    NULL

    declare @year int 
    declare @month int 
    
    set @year=2014
    set @month=9
    if(@month!=12)
    	begin
    	   set @month=@month+1
    	   set @year=@year-1
    	end
    else
    	begin 
    		set @month=1
    end
    declare @sql varchar(max)
    declare @num int 
    set @num =12
      set @sql = ' '
    while(@num>0) 
    begin  
        set @sql += 'select ' 
        set @sql += '('''
        set @sql +=convert(varchar(10), @year)
        set @sql += '年' 
        set @sql += convert(varchar(5), @month)
        set @sql += '月'
        set @sql += ''') as 年月 '   
       set @sql += '  , (select data from p_data a where MYear= '
       set @sql += convert(varchar(10), @year)+' and MMonth= '+ convert(varchar(5), @month)
       set @sql+=')as data'
       if (@num!=1) 
        begin  
          set @sql += ' union all '  + CHAR(13)+CHAR(10) 
        end 
       set @num = @num-1
       set @month = @month+1
       
       if(@month=13)
        begin
          set @month =1 
          set @year = @year+1
        end  
       end  
    --  print @sql 
     execute(@sql)
    


    展开全文
  • 今天有一需求:根据录入时间查询一周,一年的数据 数据库如下: 这里使用到的SQL语句: 一周: select * from sqxx where TO_DAYS(now()) - TO_DAYS(bxsj) <=7 ; : select * from ...

    今天有一个需求:根据录入时间查询出近一周,近一月,近一年的数据

    数据库如下:

    在这里插入图片描述
    这里使用到的SQL语句:
    近一周:

    	select * from sqxx where TO_DAYS(now()) - TO_DAYS(bxsj) <=7 ;
    

    近一月:

    select * from sqxx where date_sub(curdate(), INTERVAL 30 DAY) <= date(bxsj) ;
    

    近一年:

    select * from sqxx where  YEAR(bxsj)=YEAR(NOW());
    

    然后可以借助三目运算符实现动态查找:

    String sql =
      time.equals("week")?"TO_DAYS(now()) - TO_DAYS(bxsj) <=7 ":(time.equals("month")?"date_sub(curdate(), INTERVAL 30 DAY) <= 			     
      date(bxsj)":"YEAR(bxsj)=YEAR(NOW())");
    
    select * from sqxx where  "+ sql ;
    

    另外可以查询每个小时的数据:

    	 FLOOR(MINUTE(add_time)/120),HOUR(add_time)
    

    具体实例:

    SELECT date_format(add_time,'%Y-%m-%d %H:%m:%s'), COUNT(id) count
        FROM xx e
        WHERE TO_DAYS(add_time) = TO_DAYS(date_sub(now(),interval #{time,jdbcType=INTEGER} day))
        GROUP BY FLOOR(MINUTE(add_time)/120),HOUR(add_time)
        ORDER BY Hour(add_time);
    

    大功告成!!!

    展开全文
  • MySQL获取近12个月数据SQL

    千次阅读 2018-03-05 14:28:05
    ##获取近12个月数据 SELECT TYEAR,  TMONTH,  CONCAT(SUBSTRING(TYEAR,3),'/',TMONTH) AS T_TIME,  MARKETNAME,  SJJY_WGDL,  SJJY_WSDL FROM KSH_COMMON_SERESULTINFO WHERE DATE_FORMAT(C...
    ##获取近12个月数据
    SELECT TYEAR,
           TMONTH,
           CONCAT(SUBSTRING(TYEAR,3),'/',TMONTH) AS T_TIME,
           MARKETNAME,
           SJJY_WGDL,
           SJJY_WSDL
    FROM  KSH_COMMON_SERESULTINFO
    WHERE DATE_FORMAT(CONCAT(TYEAR,'-',TMONTH,'-',1),'%Y-%M')> DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH),'%Y-%M');
    

    展开全文
  • SQL语句如下: 查询当天的所有数据 SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW()) = 0 SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now()); 查询昨天的所有数据 SELECT * FROM 表名 WHERE ...

    SQL语句如下:

    • 查询当天的所有数据
    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW()) = 0
    
    SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());
    • 查询昨天的所有数据
    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1
    
    SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) = 1
    • 查询未来第n天的所有数据
    //当n为负数时,表示过去第n天的数据
    
    SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n
    • 查询未来n天内所有数据
    //n天内
    
    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<n AND DATEDIFF(字段,NOW())>=0
    • 查询出今天,年月日

    SELECT DATE_SUB(CURDATE(), INTERVAL 0 DAY)
    • 几个小时内的数据
    DATE_SUB(NOW(), INTERVAL 5 HOUR)
    
    • 7天
    SELECT * FROM 表名 wher DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
    • 近30天
    SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
    • 本月
    SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
    • 上一月
    SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1
    • 查询过去n天内所有数据
    //包含当天
    
    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<=0 AND DATEDIFF(字段,NOW())>-n
    
    //不包含当天
    
    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<0 AND DATEDIFF(字段,NOW())>-n
    •  

    DATEDIFF函数说明:

    DATEDIFF() 函数用于返回两个日期之间的天数。 语法:DATEDIFF(date1,date2) date1 和 date2
    参数是合法的日期或日期/时间表达式。 注释: 
    1. 只有值的日期部分参与计算。 
    2. 当日期date1<date2时函数返回值为正数,date1=date2时函数返回值为0,date1>date2 时函数返回值为负数。
    3. Mysql的DATEDIFF只有两个参数。SQL Server有三个参数,详细内容可见:SQL Date函数

    展开全文
  • sql查询个月数据并自动补零

    千次阅读 2018-09-30 16:12:51
    使用sql查询,对每个月数据进行查询并进行统计,当该月数据为零时进行补零操作。 首先先从表qm_technical_zero中对每个月数据进行查询 SELECT COUNT(*) as con , CONCAT(YEAR(applicationdate),'-',MONTH...
  • SQL 查询本月无数据用上个月数据

    千次阅读 2013-12-30 00:37:54
    SQL 查询本月无数据用上个月数据 前言 因为标题有长度限制,先简要说明一下应用场景。比如我们要查一段时间范围内(2013-08-01至2013-12-31)每个月每个运营商的用户总量,每个运营商用户量每个月更新的时间...
  • SQL查询最大值,返回整行数据

    万次阅读 多人点赞 2019-06-21 20:05:09
    SQL查询最大值,返回整行数据 1、问题 部分数据如下,未完整展示。如何从 table_a 表中查询 p_postions 列的最大值对应的一行数据? 在这里插入图片描述 2、解答 方法1:先排序,再取第一条 SELECT * FROM table_a ...
  • sql查询出1到12月数据形成报表

    千次阅读 2019-04-18 15:49:33
    sql查询出1到12月的数据个月的总量 形成报表 SELECT * FROM ( SELECT COUNT( 1 ) AS January FROM tb_customer c WHERE YEAR ( c.create_date ) = ‘2019’ AND MONTH ( c.create_date ) <= ‘01’ ), ( ...
  • SQL SERVER查询个月数据

    千次阅读 2015-10-22 18:07:30
    我们在做项目的时候经常遇到按汇总、按季度汇总 我们看下在数据库中查询语句怎么使用? select * from COM_MESSAGE T WHERE T.SEND_DATE > dateadd(mm,-1,getdate()) 代码中主要使用了dateadd数据,或者使用...
  • 如果查询30天的数据, 会for 循环30天,然后再一天一天的数据查询拼成数组。 这样统计时候会使性能降低。 sql 优化 用了mysql 的函数 date_format select count(1) as count from 查询的表 group by date_...
  • sql语句,查询前一个月数据

    千次阅读 2017-03-18 11:19:31
    我现在sql server有一个表A里面有一个字段shijian数据类型是datetime, 如何用查询从现在开始,之前一个月内的数据
  • SQL语句如下: 查询当天的所有数据   SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW()) = 0 SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());   查询昨天的所有数据   SELECT ...
  • 一条sql查询表的统计数据

    万次阅读 2019-05-05 16:19:39
    一条sql解决,不用传统方式循环查询上百次,从而提高查询效率和减轻数据库压力。 dao-impl: @Override public List<Map<String, Integer>> getCountByBathSql(List<Use...
  • sql 查询指定年指定数据

    千次阅读 2019-06-13 13:09:00
    如:查询2019年6的份的数据:(测试数据库:mysql) select * from userwhere year(create_time)=2019 and month(create_time)=6 扩展:如果查询某天:day(create_time)=14 ...
  • select DateAdd(Month,-3,getdate()) --返回一时间,根据这时间点去查询想要的数据即可 --DateAdd函数的详细说明: --DateAdd(interval, number, date) --interval 必选。字符串表达式,表示要...
  • sql查询本周、本月数据

    千次阅读 2018-10-31 10:57:18
    本周数据从周一开始 SELECT  * FROM  `tend_scheduling_item` WHERE  tend_psn_hid = 498 AND YEARWEEK(date_format(duty_date, '%Y-%m-%d'),1 ) = YEARWEEK(now(),7); 本周数据从周日kai'开始 SELECT  * ...
  • Sql去重查询数据

    万次阅读 2019-06-10 17:17:20
    最近在工作过程中,面试过程中,部分求职者或者同事,对sql怎么去重查询,不是太熟练 今天下午忙里偷闲, 整理了一下 其实sql基本的查询 ,还是蛮有意思, 下面是我大致整理的几种去重查询 1.存在2条一样的数据,...
  • sql查询两张表不同的数据sql查询语句优化, 方法一(推荐) WITH C AS ( SELECT Name FROM ConsumerCouponApply A WHERE NOT EXISTS ( SELECT 1 FROM ...
  • sql查询某字段重复的数据

    千次阅读 2018-10-28 21:15:24
    最近老是遇到添加新的约束问题,其中就有要求数据不能重复,那么以前哪些测试数据就不方便改了,但是又不能删除,所以为了防止重复,我们只能查询出来一个个改了,那么查询Sql语句如下 SELECT 字段名, COUNT(字段...
  • EXCEL-VBA:通过SQL查询数据Sheet中的数据
  • 今天数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内数据:select * from 表名 where DateDiff...
  • 所以产生了一个问题,如何按照折线图所需,从数据库查询近一年、近三个月、近六个月数据呢? 对此,我整理了主流数据库mysql、oracle版本的查询方式。 mysql: #查询近一年的数据 select COUNT(business_type = '0...
  • 做报表统计的时候,常常需要在MySQL端用sql统计7个月数据,或者7天的数据。 假如遇到当月没有数据,或者当天没有数据时,默认为0。
  • sql 查询某一年数据

    万次阅读 2017-07-05 09:58:13
    关于SQL如何查询年月日的数据
  • sql查询n天前的数据

    千次阅读 2019-08-14 11:43:45
    sql查询n天前的数据查询 >3天的数据查询3天前至今的数据 查询 >3天的数据 select created_at,vm_state,memory_mb,vcpus from nova.instances where created_at<curdate()-interval 3 day and vm_state!=...
  • SQL数据库查询LIMIT 数据分页

    万次阅读 2017-11-28 12:17:43
    SQL数据库查询LIMIT 数据分页SQL的语句LIMIT 约束SELECT 查询数据包表时,使得SQL查询语句返回指定的记录数(行数)。LIMIT 可以设置1或2int整型常量数字作为参数。LIMIT在数据分页查询时候十分有用,因为不是每...
  • 有一张表需要查询除本月外的前三个月数据,请问如何查询?包括跨年查询 请各位大神指教

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,357,516
精华内容 943,006
关键字:

sql查询近12个月的数据