MySQL查询某段时间某经度范围内的数据
2017-05-18 21:49
826 查看
速报的项目中有一个需求是因为查询返回的历史地震数据较多,在前台展示不太方便,要求我PHP返回的数据减少到10年内的。然后考虑到速报是个比较小型的系统,请求量也比较小,数据存储量不大,mysql server内存充足,并且最近在学习MySQL的优化,就把本该在PHP做的业务逻辑放在MySQL做了(其实就是懒吧,也知道大佬们都说少使用MySQL自带的函数)。
下面这段SQL便是能满足↑面标题说的,传入经纬度和公里数(单位100km),查询10年内的公里范围数据。
关于时间函数MySQL也提供的比较多,我仔细看了这篇文章,觉得比较详细,可以自己收藏下。点这儿
下面这段SQL便是能满足↑面标题说的,传入经纬度和公里数(单位100km),查询10年内的公里范围数据。
select LATI,LONGI,EQTTIME,MAG,DEPTH,PLACE from history where EQTTIME >=DATE_SUB(CURDATE(), INTERVAL 10 YEAR) and LATI > '".$lat."'-'".$dis."' and LATI < '".$lat."'+'".$dis."' and LONGI > '".$lon."'-'".$dis."' and LONGI < '".$lon."'+'".$dis."' order by ACOS(SIN(('".$lat."' * 3.1415) / 180 ) *SIN((LATI * 3.1415) / 180 ) +COS(('".$lat."' * 3.1415) / 180 ) * COS((LATI * 3.1415) / 180 ) *COS(('".$lon."'* 3.1415) / 180 - (LONGI * 3.1415) / 180 ) ) * 6380
关于时间函数MySQL也提供的比较多,我仔细看了这篇文章,觉得比较详细,可以自己收藏下。点这儿
相关文章推荐
- PHP MySQL 查询 指定 范围 日期 时间段 数据 between 用法
- SQL查询指定时间[字符串]范围内的数据
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法
- mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法 时间格式为 int DATETIME
- mysql 数据库 HQL语句查询一个月内时间的数据
- 【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据
- MYsql 查询 查询当前月份的数据(时间 查询)
- mysql 将时间戳直接转换成日期时间,mysql查询某一天的数据。
- oracel与mysql 查询从创建时间到更新时间的3天内的数据
- MySQL数据导出、删除、表重命名、时间转化及级联查询
- mysql中查询时间为空的数据
- mysql 查询某年某月数据~(如果数据表用时间戳)
- Lucene.Net中按时间范围查询,结果没有查到数据
- MYSQL 时间查询的范围
- MySQL获取某个时间范围内的数据
- 数据库查询:查询在指定时间范围内的数据
- MYsql 查询 查询当前月份的数据(时间 查询)
- mysql根据时间戳查询指定日期内数据
- MySQL 查询数据表里面时间字段为今天添加的计数
- Java查询MySQL日期时间数据类型显…