SqlServer 按时间段查询问题

百度的资料,保存下来:

在写按时间段查询的sql语句的时候 一般我们会这么写查询条件: 

where date>='2010-01-01' and date<='2010-10-1'

但是在实执行Sql时些语句会转换成这样:

  where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,也许就会有些明白,

那就是'2010-10-1 0:00:00' 之后的数据例如('2010-10-1:08:25:00')查不到,也就是说2010-10-1的数据查不到。

知道原因了可以修改查询条件为:  

where date>='2010-01-01' and date<='2010-10-1 23:59:59' 或 where date>='2010-01-01' and date<='2010-10-2'

某个表某个字段是Datetime型 以"YYYY-MM-DD 00:00:00" 存放

(1)、例如数据

2009-01-22 21:22:22
2009-01-22 19:21:11
2009-01-22 23:10:22

(2)、用 select * from TABLE where date between '2009-1-22' And '2009-1-22' ,想查日期为2009-1-22的记录,结果查不到

(3)、问题原因

短日期类型默认Time为00:00:00,所以当使用between作限制条件时,就相当于between '2009-1-22 00:00:00' and '2009-1-22 00:00:00',因此就查不出数据。

(4)、解决方法

 --方案一:对数据库里面的字段进行日期格式转换
 select * from tb where convert(varchar(10),riqi,120) = '2009-01-22'
 --方案二:给日期补全时分秒
 select * from tb where riqi between '2009-01-22 00:00:00' and '2009-01-22 23:59:59'
 --结果
 /**//*
 id riqi
 ---- ------------------------------------------------------
 A 2009-01-22 21:22:22.000
 B 2009-01-22 19:21:11.000
 C 2009-01-22 23:10:22.000
 (所影响的行数为 3 行)
 */

总结

以上所述是小编给大家介绍的SqlServer 按时间段查询问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • PHP 获取 ping 时间的实现方法

    PHP 可以通过exec函数执行shell命令,来获取ping时间. 代码示例: echo 'PHP_INT_MAX : ' . PHP_INT_MAX . "<br><br>"; $ip = '115.29.237.28'; // IP地址 if (PATH_SEPARATOR==':') // linux { echo 'I am linux' . "<br><br>"; exec("ping -c 3

  • Java日期时间以及日期相互转换

    Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateBase { public static voi

  • PHP实现数据库统计时间戳按天分组输出数据的方法

    本文实例讲述了PHP实现数据库统计时间戳按天分组输出数据的方法.分享给大家供大家参考,具体如下: 比如统计每天用户注册数,数据库表存了一张用户注册记录表: create table table_name(id int primary key,register_time int(10)); register_time记录的是时间戳,以前的做法是,接收查询开始时间.查询结束时间,然后循环查询每天的注册数量,代码: /* 查询2015-12-01 至 2015-12-14 */ // 开始的时间戳 $

  • java基于正则表达式实现时间日期的常用判断操作实例

    本文实例讲述了java基于正则表达式实现时间日期的常用判断操作.分享给大家供大家参考,具体如下: 最近需要完成一个判断用户输入时间日期类型来进行相应操作的业务.实现这个功能自然少不了用到正则表达式,提高正则表达式的话,其实它的用法很简单,只需把这个表格记住并且会灵活运行就可以了. 元字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,"\n"匹配字符"n"."\\n"匹配一个换行符.序列&qu

  • iOS开发之时间戳(或date)转字符串的实例代码

    1.时间戳转字符串 ///时间戳转化为字符转0000-00-00 00:00 + (NSString *)time_timestampToString:(NSInteger)timestamp{ NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp]; NSDateFormatter *dateFormat=[[NSDateFormatter alloc]init]; [dateFormat setDate

  • 时间中间键的整理

    时间中间键的整理 一下内容是对数据接口返回的时间节点处理方法很管用的哦 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'interval' }) export class IntervalPipe implements PipeTransform { transform(value: any): any { let date = new Date(value) if (!date) { return '' }

  • php生成毫秒时间戳的实例讲解

    php时间函数time()生成当前时间的秒数,但是在一些情况下我们需要获取当前服务器时间和GMT(格林威治时间)1970年1月0时0分0秒的毫秒数,与Java中的currentTimeMilis()函数一样. 例子: public function getCurrentMilis() { $mill_time = microtime(); $timeInfo = explode(' ', $mill_time); $milis_time = sprintf('%d%03d',$timeInfo[

  • SqlServer 按时间段查询问题

    百度的资料,保存下来: 在写按时间段查询的sql语句的时候 一般我们会这么写查询条件: where date>='2010-01-01' and date<='2010-10-1' 但是在实执行Sql时些语句会转换成这样: where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看这个条件的话,也许就会有些明白, 那就是'2010-10-1 0:00:00' 之后的数据例如('2010-10-1:08:25:0

  • sqlserver 树形结构查询单表实例代码

    --树形sql查询 WITH TREE AS( --创建一个虚拟表 SELECT * FROM sys_organiz --指定需要查询的表 WHERE organize_code = '100000' -- 指定父节点条件 UNION ALL --联合查询 SELECT sys_organiz.* FROM sys_organiz,TREE WHERE TREE.organize_code = sys_organiz.organize_parent_code ) SELECT * FROM T

  • SqlServer中模糊查询对于特殊字符的处理方法

    今天在处理sql查询的时候遇到了like查询不到的问题,于是对问题进行剖析 问题: select * from v_workflow_rt_task_circulate where Name like '%[admin]请假申请[2017-02-13至2017-02-13]%' 查询不到,但是在数据库中是存在在这一条数据的. 修改后: select * from v_workflow_rt_task_circulate where Name like '%[[]admin]请假申请[[]2017

  • Vue实现点击时间获取时间段查询功能

    本文实例为大家分享了vue按时间段查询的案例,效果图如下 html代码 <template> <div class="personalReport_time"> <input type="date" :max="this.endTime" value="" v-model="startTime"/> <div></div> <input ty

  • SqlServer 表单查询问题及解决方法

    Q1:表StudentScores如下,用一条SQL语句查询出每门课都大于80分的学生姓名 Q2:表DEMO_DELTE如下,删除除了自动编号不同,其他都相同的学生冗余信息 Q3:Team表如下,甲乙丙丁为四个球队,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合 Q4:请考虑如下SQL语句在Microsoft SQL Server 引擎中的逻辑处理顺序 USE TSQLFundamentals2008 SELECT empid,YEAR(orderdate) AS orderyea

  • JAVA实现按时间段查询数据操作

    html / jsp <span style="vertical-align: -webkit-baseline-middle;font-size:16px;font-weight:bold;">开始时间:</span>  <input name="startTime" id="startTime" type="text" class="Wdate" onfocus="

  • Vue按时间段查询数据组件使用详解

    本文实例为大家分享了Vue按时间段查询数据组件的具体使用代码,供大家参考,具体内容如下 首先是前端效果: 界面代码如下: <template> <a-col :md="6" :sm="10"> <a-form-item label="执行时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-range-picke

  • sqlServer实现分页查询的三种方式

    目录 一.offset /fetch next关键字 二.利用max(主键) 三.利用row_number关键字 总结 sqlServer的分页查询和mysql语句不一样,有三种实现方式.分别是:offset /fetch next.利用max(主键).利用row_number关键字 一.offset /fetch next关键字 2012版本及以上才有,SQL server公司升级后推出的新方法. 公式: -- 分页查询公式-offset /fetch next select * from 表

  • SQLServer 跨库查询实现方法

    本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL 语句中对象的完整表达式是: [DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject] 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限. 复制代码 代码如下: select * from CfteaDb1.dbo.CfteaTa

  • 如何查看SQLSERVER中某个查询用了多少TempDB空间

    在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序.hash join.work table等) 外部使用(临时表,表变量等) 行版本控制(乐观并发控制)       而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行.排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQL Server预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理,这也就是所谓的Spill to TempDB. 通过下述语句可以

随机推荐