SQL Server 中的时间的加减和时间的比较

最近在写一个项目时,用到了时间的比较和时间的加减,在这里简单说一下,我也是刚接触数据库不久,如有说的不当之处望大家包涵,指正

一、时间的比较

开始的时候我比较时间用的是 Time>GETDATE() 简单粗暴

其实SQL Server有自带的时间比较函数,所以可以用它自带的,还安全也很方便

DATEDIFF();

我参照的W3School 中对于DATEDIFF函数的解析,具体如下:

语法

   DATEDIFF(datepart,startdate,enddate)   其中datepart是只你要比较这个两个时间的年?还是月?还是日?还是小时等相差多少   具体写法参照下图:
datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

简单的写个例子说明下:

DATEDIFF(HH,‘2014-06-25 8:00:00‘,‘2014-06-25 12:58:00‘) 得到值是4,就是这个两时间相比较小时相差4个小时

如果要比较天数,就把HH改为d即可,其他比较可以看上图

二、时间的加减

开始我用的是  Time+1就是在时间上加一天,减一天就用Time-1,同样的简单粗暴

下面说一下SQL Server中自带的时间加减的函数

语法如下:

     DATEADD(datepart,number,date)     其中datepart是你要加减的时间的形式,加年?还是月?还是日等     具体写法如下:
datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

感觉和上述的DATEDIFF差不多,直接看例子:

DATEADD(d,1,GETDATE())是当前时间加一天,减一天就用 DATEADD(d,-1,GETDATE())

如果是对于年、月、小时等加减参照上图,修改datepart即可,方便快捷

ps:W3School还是很不错的 http://www.w3school.com.cn/sql/

SQL Server 中的时间的加减和时间的比较,布布扣,bubuko.com

时间: 2024-10-12 14:09:54

SQL Server 中的时间的加减和时间的比较的相关文章

SQL Server中getdate()函数的时间格式设置

Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select

SQL Server中时间格式转换函数convert()的使用

convert(varchar(10),字段名,转换格式) CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到:函数的3个参数:第1个参数为转换后的大:第2个为转换日期的字段或函数:第3个为转换的格式. 具体例子: SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2011 10:57AM SELECT CONV

SQL Server中是否可以准确获取最后一次索引重建的时间?

原文:SQL Server中是否可以准确获取最后一次索引重建的时间? 在SQL Server中,我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢?  答案是我们无法准确的找到索引的创建时间.最后一次索引重组时间,最后一次索引重建的时间. 其实就目前SQL Server的各个版本而言,还没有一个系统表或DMV视图有保存索引创建的时间,索引重建的时间.索引重组的时间.但是有些方法可以间接得到最后一次索引重

在SQL SERVER中实现RSA加解密函数(第二版)

/*************************************************** 作者:herowang(让你望见影子的墙) 日期:2010.1.5 注: 转载请保留此信息 更多内容,请访问我的博客:blog.csdn.NET/herowang ****************************************************/ /* 本次修改增加了unicode的支持,但是加密后依然显示为进制数据,因为进行RSA加密后所得到的unicode编码是无

SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中的事务概念,ACID 原则,事务中常见的问题,问题造成的原因和事务隔离级别等这些方面的知识好好的整理了一下. 其实有关 SQL Server 中的事务,说实话因为内容太多, 话题太广,稍微力度控制不好就超过了我目前知识能力范围,就不是三言两语能够讲清楚的.所以希望大家能够指出其中总结的不足之处,对我

SQL Server中一些有用的日期sql语句

1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜 SELECT DATEAD

SQL Server中GETDATE转换时间时注意事项

在SQL Server中,有时候查询数据时,需要限定查询时间范围.此时需要对时间进行运算, 如下所示: USE AdventureWorks2014; GO SELECT  * FROM    HumanResources.Employee WHERE   ModifiedDate > GETDATE() - 20; 例如,获取前一天的时间,可以用下面这样的SQL语句. SELECT GETDATE() -1, GETDATE(); 至于为什么写这样的SQL,一来这样书写非常简单方便,比用DAT

从算法入手讲解如何在SQL Server中实现最优最简

算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世界中的问题已经是屡见不鲜.随着数据量的大幅度增加和业务规则的日益复杂,越来越需要一种专门的方法来满足效率和准确性方面的要求.如何把解决问题的复杂算法转换为数据库能够执行的命令,也是数据库应用技术研究的一个方面.本文以MSSQL中的命令来阐述例子. 数据库中可以存储实体的数据集合,在进行运算时,数据库

十步优化SQL Server中的数据访问(转载)

原文地址:http://tech.it168.com/a2009/1125/814/000000814758.shtml 故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因. 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试访问/更新数据时,数据库执行得相当慢,再次深入调查数据库后,你发现数据库表增长得很大,有些表