MS SQL Server-比较日期和时间(转)

转载 2004年10月11日 09:54:00

    有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时:

SELECT entrydate Time Entered

DATEDIFF(hh,entrydate,GETDATE()) Hours Ago FROM weblog

如果当前时间是2000年11月30号下午6点15分,则会返回如下的结果:

Time Entered Hours Ago

…………………………………………………..

Dec 30 2000 4:09PM 2

Dec 30 2000 4:13PM 2

Dec 1 2000 4:09PM 698

(3 row(s) affected)

函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。

函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。例如,假设访问者必须先注册才能使用你的站点。注册以后,他们可以免费使用你的站点一个月。要确定什么时候他们的免费时间会用完,你可以使用如下的SELECT语句:

SELECT username User Name,

DATEADD(mm,1,firstvisit_date) Registration Expires

FROM registration_table

函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分(参见表11.2),这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_date.假设当前日期是June 30,2000,这个语句将返回如下的内容:

User Name Registration Expires

……………………………………………………………………………

Bill Gates Jul 30 2000 4:09PM

President Clinton Jul 30 2000 4:13PM

William Shakespeare Jul 1 2000 4:09PM

(3 row(s) affected)

注意:

与你预料的相反,使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。这意味着在11月注册的人将比在2月注册的人多得到2天或3天的时间。要避免这个问题,你可以用函数DATEADD()直接增加天数,而不是月份。

MS SQL Server中的日期格式转换方法

CONVERT及日期格式處理方式(转)(2009-11-17 15:11:13)转载标签:杂谈 分类:学习 CONVERT及日期格式處理方式MS SQL Server中文版的預設日期datetime格...
  • azhexg
  • azhexg
  • 2010年11月24日 12:37
  • 5092

三种数据库日期转字符串对比sql server、oracle、mysql(V4.11)

SELECT CONVERT(varchar(100),GETDATE(), 23) ; -- 2015-07-07SELECT CONVERT(char(6),GETDATE(), 112) ; -...
  • ClamReason
  • ClamReason
  • 2015年07月07日 11:48
  • 2958

sql server 日期与字符串转换

SQL code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
  • qq_34068082
  • qq_34068082
  • 2016年11月12日 16:17
  • 1187

在MS SQL中去掉getdate()的时间部分,只要日期部分

格式类型: 000 输出日期格式: Sep 14 200 格式类型: 001 输出日期格式: 09/14/01 格式类型: 002 输出日期格式: 01.09.14 格式类型: 003 输出日期...
  • LengMuYan
  • LengMuYan
  • 2017年01月17日 17:11
  • 848

SQLServer时间相关 - SQL日期,时间比较

例子: select count(*) from table where DATEDIFF ([second], '2016-09-18 00:00:18', '2016-09-18 00:00...
  • qq_18145031
  • qq_18145031
  • 2016年10月10日 11:28
  • 3491

SQL Server 中日期比较

1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dat...
  • binsoft
  • binsoft
  • 2014年05月15日 18:43
  • 1025

SQL时间相关 - SQL日期,时间比较

转载自http://www.cnblogs.com/henw/archive/2011/07/15/2107546.html
  • kangcuiping
  • kangcuiping
  • 2016年06月01日 18:27
  • 972

SQL Server 如何比较日期的大小

在机房收费系统中,有几处这样的情况: 起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个日期范围类的记录! 有的人就说了,这还不简单! 假如我们...
  • u010786678
  • u010786678
  • 2013年09月22日 21:04
  • 10694

MS Sql server 日期转换为特定字符串格式

Select CONVERT(varchar(100), GETDATE(), 112); 有一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE...
  • u010466666
  • u010466666
  • 2016年10月12日 15:53
  • 537

Sql中日期类型的比较

一.存储日期的字段为日期类型MySql(Date、DateTime、TimeStamp等): 方法一:直接比较 select * from test where create_time betwe...
  • u011983531
  • u011983531
  • 2015年10月20日 00:07
  • 9601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MS SQL Server-比较日期和时间(转)
举报原因:
原因补充:

(最多只允许输入30个字)