`
bugyun
  • 浏览: 551587 次
社区版块
存档分类
最新评论

MySql查询时间段的方法(转)

 
阅读更多

参考:http://www.jb51.net/article/58668.htm

 

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,总之这种方式有利于快速查询时间段,不过显示时间则需要再反转一次。

分享到:
评论

相关推荐

    MySql 按时间段查询数据方法(实例说明)

    本文将详细说明如何使用MySQL进行按时间段查询数据的方法,包括操作示例和说明。 首先,我们必须了解MySQL中处理时间数据的函数。例如,`curdate()` 函数用于获取当前日期,而 `month()` 函数可以提取日期或时间...

    MySql查询时间段的方法

    本文实例讲述了MySql查询时间段的方法。分享给大家供大家参考。具体方法如下: MySql查询时间段的方法未必人人都会,下面为您介绍两种MySql查询时间段的方法,供大家参考。 MySql的时间字段有date、time、datetime、...

    Mysql 时间模糊查询

    本文将详细介绍几种常见的MySQL时间模糊查询方法,并通过实例加以说明。 #### 二、模糊查询的基本概念 模糊查询是指不精确地匹配查询条件的一种查询方式。在MySQL中,模糊查询主要通过`LIKE`关键字实现。例如,...

    使用LabVIEW操作ACCESS、MySQL、SQL server数据库实现按照时间段查询数据

    在LabVIEW中操作数据库,尤其是实现按时间段查询数据,需要借助特定的工具包。本教程主要涉及使用官方数据库工具包“Database Connectivity Toolkit”,该工具包包含29个函数,能够实现数据库连接、增删改查及数据...

    mysql时间段查询.pdf

    mysql时间段查询.pdf

    使用Between查询时间段.rar

    本篇文章将深入探讨如何使用`BETWEEN`来查询时间段。 一、`BETWEEN`的基本语法 `BETWEEN`的关键字语法如下: ```sql SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; ``` ...

    mysql 数据库转 oracle

    MySQL到Oracle的数据迁移是一项常见的任务,特别是在企业级应用中,可能因为各种原因需要从MySQL迁移到功能更强大的Oracle数据库系统。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要了解MySQL和Oracle...

    springmvc+mysql增删改查【时间段条件查询】

    在本文中,我们将深入探讨如何将Spring MVC框架与MySQL数据库集成,实现基本的CRUD(创建、读取、更新和删除)操作,并特别关注时间段条件查询。Spring MVC是Spring框架的一部分,它为Web应用程序提供了模型-视图-...

    mysql 查询本周、上周、本月

    除了以上提到的查询方法之外,还可以通过其他方式来查询指定时间段的数据,例如使用`UNIX_TIMESTAMP`等函数: - 使用`UNIX_TIMESTAMP`函数来查询指定月份的数据: ```sql SELECT * FROM `user` WHERE DATE_...

    mysql 查询行列转换

    例如,将某个时间序列的数据从行转换为列,可以先通过 GROUP BY 时间段生成子查询,然后将这些子查询的结果联接起来。 3. **GROUP BY 和聚合函数**: 当需要对特定列进行汇总统计时,可以结合 GROUP BY 和聚合函数...

    MySQL数据库查询优化

    预计时间2小时,每小时一个课程段(子查询是SQL查询优化的重点内容,务必掌握好) 第5课 查询优化技术理论与MySQL实践(三)------视图重写与等价谓词重写 什么是视图重写?哪些类型的视图可以被优化?MySQL是怎么...

    sql时间段查询

    通过上述示例可以看出,不同的数据库管理系统在实现特定时间段的数据查询时有着相似但又有所区别的方法。掌握这些查询技巧不仅能够提高数据处理效率,还能帮助开发者更灵活地应对各种业务需求。希望这些示例能对您...

    MySQL SQL查询优化最佳实践

    详细介绍慢查询日志及示例演示,MySQL查询优化器介绍及特定SQL的查询优化等 1.获取有性能问题的SQL的三种方法 2.慢查询日志概述 3.慢查询日志实例 4.实时获取性能问题SQL 5.SQL的解析预处理及生成的执行计划 6.如何...

    mysql 获取规定时间段内的统计数据

    在MySQL数据库中,获取规定时间段内的统计数据是一项常见的需求,尤其对于数据分析和业务监控至关重要。这里我们将探讨如何使用MySQL的时间函数来实现这样的统计。 首先,我们要理解`DATE_FORMAT()`函数的作用。这...

    MySQL 时间相关查询

    MySQL 时间相关查询主要涉及到对时间数据的处理,包括INT类型时间戳查询和TIMESTAMP时间查询。这两种查询方式在数据库管理中极为常见,特别是在数据分析、日志记录和事务追踪等方面。 1. INT 类型时间戳查询: INT...

    asp用的mysql时间戳转换方法

    ### ASP中MySQL时间戳转换至SQL Server日期格式的方法 在数据迁移或跨数据库操作时,经常需要处理不同数据库之间的日期时间格式差异问题。例如,当我们需要将MySQL中的数据导出到Oracle或SQLServer时,可能会遇到...

    mysql数据库应用形考任务(实训1~4.zip)

    (2)查询此汽车用品网上商城会员的创建时间段,1年为一段。 分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。 【实验2.4】ORDER BY (1)...

Global site tag (gtag.js) - Google Analytics