今天无聊从网上找了点sql查询,发现一个很实用的一个sql和大家分享一下;主要用于天、周、月、季、年等时间分组时用
Mysql按天分组(按日分组)
一、年度查询
查询 本年度的数据
SELECT *
FROM blog_article
WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))
二、查询季度数据
查询数据附带季度数
SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )
FROM `blog_article`
其他的同前面部分:查询 本季度的数据
SELECT *
FROM blog_article
WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))
三、查询月度数据
本月统计(MySQL)
select * from booking where month(booking_time) =
month(curdate()) and year(booking_time) = year(curdate())
本周统计(MySQL)
select * from spf_booking where month(booking_time) =
month(curdate()) and week(booking_time) = week(curdate())
四、时间段
N天内记录
WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N
当天的记录
where date(时间字段)=date(now())
或
where to_days(时间字段) = to_days(now());
查询一周:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
查询一个月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);
查询'06-03'到'07-08'这个时间段内所有过生日的会员:
Select * From user Where
DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')
<= '07-08';
统计一季度数据,表时间字段为:savetime
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))
或
select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)
from yourTable
group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;
五、分组查询
1、年度分组
2、月度分组
3、先按年度分组,再按月度分组
4、按年月分组
SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate FROM `blog_article` group by sdate
相关推荐
MySql实现分组取n条最大记录,还在为分组取最大困扰么?
下面用group by分组如果遇到这个错误: this is incompatible with sql_mode=only_full_group_by 那么在此执行这两句 select @@global.sql_mode; set sql_mode = (SELECT REPLACE(@@sql_mode, ‘ONLY_FULL_GROUP_BY...
8.4.4.5 日期计算 8.4.4.6 NULL值操作 8.4.4.7 模式匹配 8.4.4.8 行计数 8.4.5 使用多个数据库表 8.5 获得数据库和表的信息 8.6 以批处理模式使用mysql 8.7 从"双胞项目"中查询 ...
8.4.4.5 日期计算 8.4.4.6 NULL值操作 8.4.4.7 模式匹配 8.4.4.8 行计数 8.4.5 使用多个数据库表 8.5 获得数据库和表的信息 8.6 以批处理模式使用mysql 8.7 从"双胞项目"中...
MYSQL数核心技术,数据库的安装,SQL的语言分类##### 、数学函数 ``` round 四舍五入 rand 随机数 floor向下取整 ceil向上取整 mod取余 truncate截断 ##### 3、日期函数 ...### 进阶5:分组查询
查询数据库 SELECT * FROM `student` 查询结果 id name birthday 1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 4 马六 2003-10-01 转换为年龄的查询语句,使用函数TIMESTAMPDIFF ...
* 1 MySQL的一般的信息 o 1.1 什么是MySQL? o 1.2 关于本手册 + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o ...
9.7 分组查询,统计函数(GROUP BY) 9.8 修改数据(INSERT、UPDATE和DELETE) 9.9 创建数据表、数据库和索引 第10章 SQL解决方案 10.1 字符串 10.2 日期和时间 10.3 ENUM和SET数据类型 10.4...
select语句插入 66 3.5.4 使用LOAD语句批量录入数据 66 3.5.5 总结 68 3.6 查询数据表中的记录 69 3.6.1 普通查询 69 3.6.2 条件查询 71 3.6.3 查询排序 73 3.6.4 查询分组与行计数 75 ...
3.DATE 日期类型:支持的范围是-01-01到-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度 5...
MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: ...
原理:convert函数将时间戳转换成ODBC标准时间(120参数指定),然后取前十位,则刚好得到完整日期(不含时分秒),再分组即可。 按月,按年分组方法一样,只需要修改convert()方法第一个参数的长度。 您可能感兴趣的...
日志系统的表中,时间字段存储的是13位时间戳timestamp而不是日期数据,而在业务中,我们需要通过时间和ip来进行分组查询给定日期的数据. 当然你可以选择在业务层先将传入的日期转为时间戳,再去进行查询,但是既然mysql...
3.DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:定长字符串类型,当存储时,总是是用空格填满右边到指定的...
14. 基础-SQL-DQL-分组查询 15. 基础-SQL-DQL-排序查询 16. 基础-SQL-DQL-分页查询 17. 基础-SQL-DQL-执行顺序 18. 基础-SQL-DCL-用户管理- 19. 基础-SQL-DCL-权限控制- 20. 基础-函数-字符串函数 21. 基础-函数-...
9.7 分组查询,统计函数(GROUP BY) 9.8 修改数据(INSERT、UPDATE和DELETE) 9.9 创建数据表、数据库和索引 第10章 SQL解决方案 10.1 字符串 10.2 日期和时间 10.3 ENUM和SET数据类型 10.4 变量与...
4. 分组查询 15 5. 条件查询 19 1、按关系表达式筛选 20 2、按逻辑表达式筛选 20 3、模糊查询 20 6. 分组函数 25 7. 连接查询 27 1、sql92标准:仅仅支持内连接 27 2、sql99标准【推荐】:支持内连接+外连接(左外和...
1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 ...
此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。 结果说明mysql命令的大小写结果是一致的。 练习如下操作: mysql>Select (20+5)*4; mysql>Select (20+5)*4,sin...