sql server查询时间技巧分享

1、将时间转换为字符串的形式:


代码如下:

convert(varchar,字段名,120)--------yyyy-mm-ddhh:ss:mm0000
convert(char(10),字段名,120)------yyyy-mm-dd

2、如果使用的是sql编辑器(微软自带的工具),查询日期不需要使用函数转换,例如
Sql代码


代码如下:

select*frominfowheredatatime>'2012-11-1100:00:00'anddatetime<'2012-12-1200:00:00'

3、如果是使用hibernate来查询数据(使用HQL)就不能使用上面这种方式了,因为查询的是对象,那么参数传递的时候要保证传递的参数是Date类型,否则会提示“转换错误”
Java代码


代码如下:

frompersonaspwherep.date=:date

传递的参数:date一定要是Date类型
4、我们在进行日期查询的时候,发现数据库的内容是yyyy-mm-dd00:00:00000后面会精确到毫秒,但是如果我们使用Calendar类来得到Date类型,也是没有办法精确到毫秒的,既我们最多只能得到yyyy-mm-dd00:00:00xxx毫秒数是当时系统的毫秒,那么查询就会有误差
5、时间的区间段查询
例如我想查询2011-11-11到2012-12-12之间的信息,它默认查询的时间是
2011-11-1100:00:00到2012-12-1200:00:00,也就是说2012-12-1223:59:59秒的时间是查询不到的
解决办法:将查询的起始时间提前1秒,将终止时间多一天(少1秒)

(0)

相关推荐

  • sql server查询时间技巧分享

    1.将时间转换为字符串的形式: 复制代码 代码如下: convert(varchar,字段名,120)--------yyyy-mm-ddhh:ss:mm0000 convert(char(10),字段名,120)------yyyy-mm-dd 2.如果使用的是sql编辑器(微软自带的工具),查询日期不需要使用函数转换,例如 Sql代码 复制代码 代码如下: select*frominfowheredatatime>'2012-11-1100:00:00'anddatetime<'2012-

  • 教你如何看懂SQL Server查询计划

    对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正. 首先,打开[SQL Server Management Studio],输入一个查询语句看看SQL Server是如何显示查询计划的吧. 说明:本文所演示的数据库,是我为一个演示程序专用准备的数据库,可以在此网页中下载. select v.O

  • Sql Server 查询性能优化之走出索引的误区分析

    据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是,或者干脆把整个查询SQL直接发给DBA,让DBA直接帮忙优化了,所以造成的状况就是开发人员对于索引的理解.认识很局限,以下就把我个人对于索引的理解及浅薄认识和大家分享下,希望能解除一些大家的疑惑,一起走出索引的误区 误区1.在表上建立了索引,在查询时用到了索引的列,索引就一定会生效 首先明确下这样的

  • SQL Server查询前N条记录的常用方法小结

    本文实例讲述了SQL Server查询前N条记录的常用方法.分享给大家供大家参考.具体如下: SQL Server查询前N条记录是我们经常要用到的操作,下面对SQL Server查询前N条记录的方法作了详细的介绍,如果您感兴趣的话,不妨一看. SQL Server查询前N条记录: 因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现: 一.搜索前20条记录,指定不包括前10条 语句: 复制代码 代码如下: select top 20 * from tbl w

  • sql server查询语句阻塞优化性能

    在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w,子表数据量超过1亿,且更新和新增频繁.再加上做了同步镜像,很消耗资源. 这时就要新建一个会话,大概需要了解以下几点: 1.当前活动会话量有多少? 2.会话运行时间? 3.会话之间有没有阻塞? 4.阻塞时间 ? 查询阻塞的方法有很多.有sql 2000 的sp_lock, 有sql 2005及以上的d

  • SQL Server查询条件IN中能否使用变量的示例详解

    在SQL Server的查询条件中,能否在IN里面使用变量呢? 如果可以的话,有没有需要注意的地方或一些限制呢?在回答这个问题前,我们先来看看这个例子: IF EXISTS (SELECT 1 FROM sys.objects WHERE name='TEST' AND type='U') BEGIN DROP TABLE TEST; END GO CREATE TABLE TEST ( ID INT, NAME VARCHAR(16) ); GO INSERT INTO dbo.TEST SE

  • SQL Server查询某个字段在哪些表中存在

    一.查询SQL Server中所有的表 SQL语句: SELECT * FROM sys.tables name列表示所有的表名. 二.查询SQL Server中所有的列 SQL语句: SELECT * FROM sys.columns name列表示所有的字段名称. 两张表根据object_id进行关联 语法: select * from sys.tables tinner join sys.columns c on t.object_id=c.object and c.name='要查询的字

  • SQL Server查询结果导出到EXCEL表格的图文教程

    需求: 将查询的两列数据导出到excel中 1.选择数据库,右键任务→导出数据,打开导入导出向导,单击下一步 2.在打开的SQL Server导入和导出的向导中,选择服务器名称.代表本机,身份验证使用SQL Server身份验证,输入用户名,密码,选择数据库,单击下一步 3.选择目标为Mircosoft Excel,选择Excel需要保存的路径,单击下一步 4.选择编写查询以指定要传输的数据,单击下一步 5.复制SQL语句到对话框中,单击下一步 6.可以编辑映射,查看预览,剩余的一直下一步,直至

  • SQL Server查询语句大全集锦

    一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量(包括局

  • 如何调优SQL Server查询

    在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,如何把你的工作和思考过程传达给查询优化器.下面就一起来探讨一下吧! 有问题的查询 我们来看下列查询: DECLARE @i INT = 999 SELECT SalesOrderID, SalesOrderDetailID, CarrierTrackingNumber, OrderQty, LineTotal FROM Sales.SalesOrderDetail WHERE ProductID < @i ORDER BY Carr

随机推荐