文档章节

mysql根据时间戳查询指定日期内数据

疯子张
 疯子张
发布于 2014/02/09 11:01
字数 601
阅读 8.6K
收藏 4

MySql查询时间段的方法未必人人都会,下面为您介绍两种MySql查询时间段的方法,供您参考,希望对您能有所启迪。 MySql的时间字段有date、time、datetime、timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型;也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time。无论怎么存储,在实际应用中,很可能会出现包含“时间段”类型的查询,比如一个访问记录数据库,需要统计每天的访问数量,这个每天就是一个时间段。下面介绍MySql查询时间段的两种常见方法,其他数据库也可以类似实现。 方法一:传统方式,即指定开始时间和结束时间,用"between”或者"<",">"来建立条件,比如查询2010年3月1日到2010年3月2日的数据条数,则可以使用 select count() from sometable where datetimecolumn>='2010-03-01 00:00:00' and datetimecolumn<'2010-03-02 00:00:00' 但是,这种方法由于时间不是整数型数据,所以在比较的时候效率较低,所以如果数据量较大,可以将时间转换为整数型的UNIX时间戳,这就是方法二。 方法二:UNIX时间戳,每个时间对应了一个唯一的UNIX时间戳,该时间戳是从'1970-01-01 00:00:00' 为0开始计时,每秒增加1。MySql内置了传统时间和UNIX时间的互换函数,分别为 UNIX_TIMESTAMP(datetime) FROM_UNIXTIME(unixtime) 比如运行SELECT UNIX_TIMESTAMP('2010-03-01 00:00:00') 返回1267372800 运行SELECT FROM_UNIXTIME(1267372800) 返回'2010-03-01 00:00:00' 于是,我们可以将时间字段里的数据替换为整型的UNIX时间,这样,比较时间就成为整数比较了,建立索引后能大大提高效率。在查询的时候,需要把起点时间和结尾时间分别转换为UNIX时间再进行比较,如 select count() from sometable where datetimecolumn>=UNIX_TIMESTAMP('2010-03-01 00:00:00') and datetimecolumn<UNIX_TIMESTAMP('2010-03-02 00:00:00') 也可以在调用程序中先转换为UNIX时间再传入MySql,总之这种方式有利于快速查询时间段,不过显示时间则需要再反转一次。

© 著作权归作者所有

上一篇: Django魔术用法
下一篇: lambda方法
疯子张
粉丝 5
博文 80
码字总数 20167
作品 0
海淀
私信 提问
加载中

评论(0)

mysql给你两个日期 怎么让这段日期的数据按天数循环出来

l给你两个日期 怎么让这段日期的数据按天数循环出来,是这段日期内每天的记录,不是这段时间哦,例如'20130702'- '20130512'这段时间内查询SELECT count(*) FROM dede_new_order WHERE to_da...

孤魂123456
2013/07/05
1.9K
3
如何遍历数据量亿级别Mongo库

场景介绍 在使用Mongo这种非关系型数据库过程中,往往存储了海量的数据,这些数据的数据结构非常松散,数据类型比较复杂。对于从海量数据中提取或分析数据,需要遍历Mongo库的情况经常出现,...

谢一鸣
2018/07/20
0
0
二:MySQL中的 帮助 和 information_schema 数据库 - 系统的撸一遍MySQL

使用帮助 MySQL中可以通过帮助功能方便的查询手册。 查看帮助内容: 查看命令帮助(具体根据上文提示来查询): information_schema 数据库 MySQL5.0后,增加了一个新的数据库(information...

logbird
2016/08/16
92
0
飞猪酒店价格采集

【项目背景】 24小时不间断获取指定日期酒店供货商对各个房型的报价,分析报价数据。 【项目目标】 1..实现一个功能接口即可,同时实现数据的缓存功能,以及实时的增删改查,并且提供数据展示接口...

忍者神爹TM
2017/06/04
146
0
OpenTsdb官方文档----日期和时间

  查询数据时,OpenTSDB支持许多日期和时间格式。在通过GUI,CliQuery工具或HTTP API提交的查询中支持以下格式。每个查询都需要一个开始时间和一个可选结束时间。如果未指定结束时间,则将...

Lynn_Yuan
2018/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

List的一波操作

public static void main(String[] args) { List<Entity> list = new ArrayList<>(); list.add(new Entity(1)); list.add(new Entity(2)); list.add(new Entity(3)); ......

那个猩猩很亮
30分钟前
65
0
Spring基础

主要用于service层; 轻量级java开发框架; 各层 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis , jdbcTemplate --> spring-data Spring核心:控制反转IOC 切面编...

七宝1
45分钟前
30
0
解决overflow+border-radius+transform圆角问题

网上还有其他版本,但是对我来说都不好使,下面是我在Chrome上的代码。overflow:hidden依然是不能正常使用,换成unset就可以,读者如果有更好的解决方案,请留言,谢谢。 <figure> <img...

hi懒喵
50分钟前
53
0
《C语言》—— 数组

书籍使我变成了一个幸福的人,使我的生活变成轻松而舒适的诗。——高尔基 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 点关注,不迷路!...

龙跃十二
今天
84
0
Java小案例: 1000以内的水仙花数

要求在控制台分别展示1000以内的水仙花数。 如下:↓ 水仙花数规则: 水仙花数至少是一个3位数 每位数字的立方数的累加和,正好等于该数字本身。 例如:153就是一个水仙花数。每位数字分别...

漫路h
昨天
66
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部