这个测试针对"一个月"的区间来查询数据。分datetime类型和nvachar类型。

先比较datetime类型:

一.datediff函数

declare @beginTime datetime
set @beginTime = GETDATE()
select top 100 * from [Resume] where DATEDIFF(day,'2013-03-25',UpdateTime)>0 and DATEDIFF(day,'2013-03-25',UpdateTime) < 30
select DATEDIFF(MS,@beginTime,GETDATE())
--result: 26ms

二.大于和小于时间区间

declare @beginTime1 datetime
set @beginTime1 = GETDATE()
select top 100 * from [Resume] where (UpdateTime>'2013/03/25' and UpdateTime < '2013/04/24')
select DATEDIFF(MS,@beginTime1,GETDATE())
--result:20ms

三.between..and..

declare @beginTime2 datetime
set @beginTime2 = GETDATE()
select top 100 * from [Resume] where UpdateTime between '2013/03/25' and '2013/04/24'
select DATEDIFF(MS,@beginTime2,GETDATE())
--result:20ms

再比较nvarchar类型:

一.大于和小于时间区间

declare @beginTime4 datetime
set @beginTime4 = GETDATE()
select top 100 * from [Resume] where [ExpireDate] >'2014/3/25' and [ExpireDate] < '2014/4/24'
select DATEDIFF(MS,@beginTime4,GETDATE())
--result:53ms

二.between..and..

declare @beginTime3 datetime
set @beginTime3 = GETDATE()
select top 10 * from [Resume] where [ExpireDate] between '2014/3/25' and '2014/4/24'
select DATEDIFF(MS,@beginTime3,GETDATE())
--result:53ms

通过以上比较,datetime类型查询数据效率要快的多,程序处理也方便。

同一类型字段按照某一时间区间来查询数据的话,用大于和小于时间区间查询数据效率略高。

查询数据时也不鼓励使用sql函数对表字段做任何动作。

sql时间区间查询性能测试的更多相关文章

  1. 常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

    常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() -- ::08.177 ...

  2. SQL 时间格式化函数发布

    SQL 时间格式化函数,有时候因某种需要需要格式化成需要的时间格式,需要的朋友可以收藏下,以备后用. SQL Server里面可能经常会用到的日期格式转换方法: sql server使用convert ...

  3. SQL 时间处理

    1.获取当前时间 GetDate() 2.获取当前年.月.日 DATEPART(yyyy,GetDate()).DATEPART(m,GetDate()).DATEPART(d,GetDate()) ...

  4. 转 sql 时间转换格式 convert(varchar(10),字段名,转换格式)

    convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime, ...

  5. SQL时间第二期_时间格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  6. SQL时间第一期_获取系统年月日时分秒

    select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) as '月',DateName ...

  7. sql时间格式

    取值后格式化 {:d}小型:如2005 {:D}大型:如2005年5月6日 {:f}完整型 当前时间获取 DateTime.Now.ToShortDateString 取值中格式化 SQL Serve ...

  8. 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)

    Java获得当前时间 java.util.Date date = new java.util.Date(); Timestamp time = new Timestamp(date.getTime() ...

  9. (转)sql 时间转换格式 convert(varchar(10),字段名,转换格式)

    convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121) CONVERT为日期转换函数,一般就是在时间类型(datetime ...

随机推荐

  1. X的平方根(二分)

    设计函数int sqrt(int x),计算 xx 的平方根. 输入格式 输入一个 整数 xx,输出它的平方根.直到碰到文件结束符(EOF)为止. 输出格式 对于每组输入,输出一行一个整数,表示输入整 ...

  2. spring 学习(五):spring 事务

    spring 学习(五):spring 事务 事务概要 一个数据库事务通常包含了一个序列的对数据库的读/写操作.它的存在包含有以下两个目的: 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同 ...

  3. BZOJ 1061 [Noi2008]志愿者招募(费用流)

    题目描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完成,其中第i ...

  4. DRF中的版本控制

    一.为什么要有版本 某些客户端 使用低版本只维护不开发新功能 v1 主要的产品还要不断的更新迭代功能 v2 API 版本控制允许我们在不同的客户端之间更改行为(同一个接口的不同版本会返回不同的数据). ...

  5. JavaWeb应用中初始化Log4j的两种方式

    本文主要介绍了普通JavaWeb应用(基于Tomcat)中初始化Log4j的两种方式: 1.通过增加 InitServlet ,设置令其自启动来初始化 Log4j . 2.通过监听器 ServletC ...

  6. Spring框架的核心模块的作用

    Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用. (1)Spring Core:核心容器提供了Spring的基本功能.核心容器的核心功能是用Ioc容器来管理类的 ...

  7. iOS导入c++语言的静态库之后编译不过,先要检查是否导入了libstdc++

    iOS项目中引入c++库,编译链接时报如下错: "std::string::_Rep::_M_destroy(std::allocator<char> const&)&q ...

  8. c++继承构造析构调用原则以及特殊变量处理

    一.继承中的构造析构调用原则 1.子类对象在创建时会首先调用父类的构造函数 2.父类构造函数执行结束后,执行子类构造函数 3.当父类构造函数有参数时,需要在子类的初始化列表中显示调用: 4.析构函数调 ...

  9. python tkinter 基本操作与事件

    基本操作 import tkinter as tk # 引入tk 包 win=tk.Tk() # 引入窗口对象 win.title("窗口标题") # 窗口标题 win.geome ...

  10. C++_函数3-引用变量与函数的默认参数

    引用变量 C++新增了一种复合类型——引用变量. 引用是已定义的变量的别名.例如将twain作为clement变量的引用,则可以交替使用twain和clement来表示该变量. 引用变量的主要用途:用 ...