SqlServer 按时间段查询问题

 更新时间:2017年10月09日 08:29:24   作者:六一儿童节  
这篇文章主要介绍了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 按时间段查询问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • SQL Server日期时间加减函数(DATEDIFF、DateAdd)的使用

    SQL Server日期时间加减函数(DATEDIFF、DateAdd)的使用

    日期时间是常用的函数,本文主要介绍了SQL Server日期时间加减函数(DATEDIFF、DateAdd)的使用,感兴趣的可以了解一下
    2023-10-10
  • SQL IFNULL()函数详细解析(最新推荐)

    SQL IFNULL()函数详细解析(最新推荐)

    IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值,这篇文章主要介绍了SQL IFNULL()函数详细解析,需要的朋友可以参考下
    2023-01-01
  • sqlserver中重复数据值只取一条的sql语句

    sqlserver中重复数据值只取一条的sql语句

    sqlserver中有时候我们需要获取多条重复数据的一条,需要的朋友可以参考下面的语句
    2012-05-05
  • sql server卡慢问题定位与排查过程

    sql server卡慢问题定位与排查过程

    做过运维的朋友们都可能会遇到,服务器应用程序运行慢的问题,下面这篇文章主要给大家介绍了关于sql server卡慢问题定位与排查过程的相关资料,需要的朋友可以参考下
    2023-03-03
  • SQL中LIKE和REGEXP简单对比分析

    SQL中LIKE和REGEXP简单对比分析

    这篇文章主要介绍了SQL中LIKE和REGEXP简单对比,在MySQL中,LIKE和REGEXP都可以用于模式匹配,但是它们的语法、性能和应用场景有所不同,通常来说,在简单的字符串模糊匹配场景下,使用LIKE更加高效;而在需要更复杂的模式匹配时,使用REGEXP更加灵活
    2023-09-09
  • 用SQL统计SQLServe表存储空间大小的代码

    用SQL统计SQLServe表存储空间大小的代码

    当SQLServer数据库越来越庞大,而其中的表有非常多的时候,想要知道到底是哪些表最耗存储空间,到底该怎样统计各个表的存储大小呢
    2012-05-05
  • SQL Server作业报错特殊案例分析

    SQL Server作业报错特殊案例分析

    这篇文章主要给大家介绍了关于SQL Server作业报错特殊案例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 在SQL Server中使用 Try Catch 处理异常的示例详解

    在SQL Server中使用 Try Catch 处理异常的示例详解

    这篇文章主要介绍了如何在 SQL Server 中使用 Try Catch 处理异常,通过实例代码了解 SQL Server 中的 Try-Catch 实现,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed

    一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed

    一个查看MSSQLServer数据库空间使用情况的存储过程 SpaceUsed...
    2007-02-02
  • sql中的char与varchar有什么区别

    sql中的char与varchar有什么区别

    varchar使用起来较为灵活,节省了一定的空间,但是它在判断位数时也耗费了时间,从整个系统的性能角度来说,char数据类型处理的速度更快,有时甚至可以超出varchar处理速度的很多倍,本文给大家介绍
    sql中的char与varchar有什么区别,一起看看吧
    2023-10-10

最新评论