该死的mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型! FROM_UNIXTIM()将unix时间戳转为datetime等日期型! 一、年度查询 查询 本年度的数据 SELECT * FROM blog_article WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( )) 二、查询季度数据 查询数据附带季度数 SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateT...
by getfuture - MySQL - 2010-11-16 16:33:04 阅读(1944) 回复(0)
该死的mysql没有提供unix时间戳的专门处理函数,所以,如果遇到时间分组,而你用的又是整型unix时间戳,则只有转化为mysql的其他日期类型! FROM_UNIXTIM()将unix时间戳转为datetime等日期型! 一、年度查询 查询 本年度的数据 SELECT * FROM blog_article WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( )) 二、查询季度数据 查询数据附带季度数 SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateT...
本帖最后由 东方补白 于 2011-08-19 10:26 编辑 现在有个需求,例如mysql中数据存储结构如下 20110817 | A借给B:1元 20110817 | A借给B:2元 20110817 | A借给B:3元 20110817 | A借给B:4元 20110817 | A借给B:5元 这5个数据仅仅是最后的钱数不同,时间和"A借给B"完全相同,mysql是否有命令能够统计这种相似并给出一个统计值?例如"20110817 | A借给B"发生了5次。 目前想了个比较笨的办法,就是用脚本读出所有的数据并写入一...
本帖最后由 chinafenghao 于 2013-05-20 10:31 编辑 求大仙,,本人大数据量有几千万条数据,分组统计的时候,sql语句 为 “insert into 表1 select id,x,y,count(*) from 表2 group by id,x,y;”但是查询效率特别慢,,基本得不到结果。。那位高人指点一下,,怎么进行优化呢。。。
本帖最后由 liu-shaobo 于 2012-08-16 23:24 编辑 请教大家,mysql日志如下:,有什么办法统计查询时间大于3秒的SQL,同时显示查询的SQL语句[code] # Time: 120311 17:14:51 # User@Host: bbs[bbs] @ localhost [] # Query_time: 6.015802 Lock_time: 0.015362 Rows_sent: 0 Rows_examined: 4 use bbs; SET timestamp=1331457291; DELETE FROM pre_common_banned WHERE expiration<'1331457291'; # User@Host: bbs[bbs] @ loc...
表结构: +------------+-----------+ | time | num | +------------+---- ------+ | 1256278360 | 10000000 | | 1256278370 | 10000000 | | 1256278380 | 10000000 | | 1256278390 | 10000000 | | 1256278480 | 10000000 | | 1256278490 | 10000000 | | 1256278580 | 10000000 | | 1256278590 | 10000000 | | 1256278600 | 10000000 | | 1256278670 | 10000000 | | 1256278680 | 10000000 | | 1256278690 | 100...
这是我的sql 语句: SELECT job_addrc,date_format(job_time,'%Y-%m-%d') as regdate, sum(case job_status when 50 then 1 else 0 end) as us50, sum(case job_status when 60 then 1 else 0 end) as us60, sum(case job_status when 70 then 1 else 0 end) as us70, sum(case job_status when 80 then 1 else 0 end) as us80 FROM job_info where job_time between '2001-1-22' and '2009-2-25' group by regdate,job_addrc o...
偶然发现使用SUM(1)可以使用跟COUNT(*)一样的效果,而COUNT(*)中的星号不知是否会随字段的数量增减而有影响,若指定一个字段名的话又要事先知道该字段名,而直接用SUM(1)就可以很通用了,只是不知效率上的差别如何? 后发现其实COUNT(1)也是OK的,这样也不需要知道字段名了,而且扩号里的值可以为任意值,大概就是原来*号的本意,那就是说*号跟字段多少是无关的. 而从原理上讲COUNT应该比SUM效率高,因为COUNT只是简单的状态累加器,而SUM是...
本帖最后由 lrlfriend 于 2014-09-23 15:18 编辑 1. 有个表很大, 需要按天分区, 怎么做能不用写那么多分区语句 (只限于RANGE分区来解决, 366个HASH分区的办法除外) ? DROP TABLE IF EXISTS tbl_par ; create table tbl_par ( -- SysTraceNo Serial , CardNo CHAR(21), TraceNo INT , TransDate DATE , INDEX i_TransDate (TransDate) , INDEX i_CardNo (CardNo) ) ENGINE = InnoDB PARTITION BY RANGE(Month(...
我现在要在一个页面上,比如说:david.php.(所在目录是/www/)上用一个链接.连接到mysql数据库中的一个表:mysql.dbl-expense 然后往这个表里 :( 实现插入功能.怎么弄?高手帮忙!